Configurar o Oracle Rest Data Services (ORDS) - Amazon Relational Database Service

Configurar o Oracle Rest Data Services (ORDS)

O tópico a seguir lista as opções de configuração para o ORDS 21 e 22:

Instalar e configurar o ORDS 21 e anterior

Agora você está pronto para instalar e configurar o Oracle Rest Data Services (ORDS) para uso com o Oracle APEX. Em relação ao APEX versão 5.0 e posterior, use o ORDS versões 19.1 a 21. Para saber como instalar o ORDS 22 e posterior, consulte Instalar e configurar o ORDS 22 e posterior.

Instale o listener em um host separado como uma instância do Amazon EC2 em um servidor no local na sua empresa ou no seu computador desktop. Para os exemplos desta seção, vamos supor que o nome do host seja myapexhost.example.com e que o host esteja executando o Linux.

Como instalar e configurar o ORDS 21 e anterior para usar com o Oracle APEX
  1. Acesse Oracle REST Data Services e examine o Readme. Verifique se você tem a versão necessária do Java instalada.

  2. Crie um diretório para a instalação do ORDS.

    mkdir /home/apexuser/ORDS cd /home/apexuser/ORDS
  3. Baixe o arquivo ords.version.number.zip de Serviços de dados Oracle REST.

  4. Descompacte o arquivo no diretório /home/apexuser/ORDS.

  5. Se você estiver instalando ORDS em um banco de dados multilocativo, adicione a seguinte linha ao arquivo /home/apexuser/ORDS/params/ords_params.properties:

    pdb.disable.lockdown=false
  6. Conceda ao usuário mestre os privilégios necessários para instalar o ORDS.

    Depois que a opção APEX do Amazon RDS for instalada, conceda ao usuário mestre os privilégios necessários para instalar o esquema do ORDS. É possível fazer isso conectando-se ao banco de dados e executando os comandos a seguir. Substitua MASTER_USER pelo nome do seu usuário mestre em letras maiúsculas.

    Importante

    Ao inserir o nome de usuário, use letras maiúsculas, a menos que você tenha criado o usuário com um identificador que diferencia letras maiúsculas de minúsculas. Por exemplo, se você executar CREATE USER myuser ou CREATE USER MYUSER, o dicionário de dados armazenará MYUSER. No entanto, se você usar aspas duplas em CREATE USER "MyUser", o dicionário de dados armazenará MyUser. Para ter mais informações, consulte Concessão de privilégios SELECT ou EXECUTE a objetos SYS.

    exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_ROLE_PRIVS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONS_COLUMNS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONSTRAINTS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_OBJECTS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_PROCEDURES', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TABLES', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_VIEWS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('WPIUTL', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SESSION', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_UTILITY', 'MASTER_USER', 'EXECUTE', true);
    nota

    Esses comandos se aplicam ao ORDS versão 19.1 e posterior.

  7. Instale o esquema do ORDS usando o arquivo ords.war baixado.

    java -jar ords.war install advanced

    O prompt do programa solicitará as informações a seguir. Os valores padrão estão entre colchetes. Para ter mais informações, consulte o tópico de Introdução ao Oracle REST Data Services, na documentação da Oracle.

    • Insira o local para armazenar dados de configuração:

      Insira /home/apexuser/ORDS. Este é o local dos arquivos de configuração do ORDS.

    • Especifique o tipo de conexão do banco de dados a ser usado. Digite o número para [1] Basic [2] TNS [3] URL personalizado [1]:

      Escolha o tipo de conexão desejada.

    • Insira o nome do servidor de banco de dados [localhost]: DB_instance_endpoint

      Escolha o padrão ou insira o valor correto.

    • Insira a porta do listener do banco de dados [1521]: db_instance_port

      Escolha o padrão ou insira o valor correto.

    • Digite 1 para especificar o nome de serviço do banco de dados ou 2 para especificar o SID do banco de dados [1]:

      Escolha 2 para especificar o SID do banco de dados.

    • SID do banco de dados [xe]

      Escolha o padrão ou insira o valor correto.

    • Digite 1 se desejar verificar/instalar o esquema do Oracle REST Data Services ou 2 para pular esta etapa [1]:

      Selecione 1. Esta etapa cria o usuário proxy do Oracle REST Data Services chamado ORDS_PUBLIC_USER.

    • Digite a senha do banco de dados para ORDS_PUBLIC_USER:

      Digite a senha e confirme-a.

    • Requer login com privilégios de administrador para verificar o esquema do Oracle REST Data Services.

      Insira o nome do usuário administrador: master_user

      Insira a senha do banco de dados para master_user: master_user_password

      Confirme a senha: master_user_password

      nota

      Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.

    • Insira o espaço de tabela padrão para ORDS_METADATA [SYSAUX].

      Insira o espaço de tabela temporário para ORDS_METADATA [TEMP].

      Insira o espaço de tabela padrão para ORDS_PUBLIC_USER [USERS].

      Insira o espaço de tabela temporário para ORDS_PUBLIC_USER [TEMP].

    • Insira 1 se quiser usar o gateway PL/SQL ou 2 para ignorar essa etapa. Se você está usando o Oracle Application Express ou migrando do mod_plsql, deve inserir 1 [1].

      Escolha o padrão.

    • Insira o nome de usuário de banco de dados do gateway PL/SQL [APEX_PUBLIC_USER]

      Escolha o padrão.

    • Digite a senha do banco de dados para APEX_PUBLIC_USER:

      Digite a senha e confirme-a.

    • Digite 1 para especificar senhas para usuários de banco de dados de serviços RESTful do Application Express (APEX_LISTENER, APEX_REST_PUBLIC_USER) ou 2 para pular esta etapa [1]:

      Escolha 2 para APEX 4.1.1.V1; escolha 1 para todas as outras versões de APEX.

    • [Não necessário para o APEX 4.1.1.v1] Senha de banco de dados para APEX_LISTENER

      Digite a senha (se necessário) e confirme-a.

    • [Não necessário para o APEX 4.1.1.v1] Senha de banco de dados para APEX_REST_PUBLIC_USER

      Digite a senha (se necessário) e confirme-a.

    • Digite um número para selecionar um recurso a ser ativado:

      Digite 1 para habilitar todos os recursos: SQL Developer Web, SQL habilitado para REST e API de banco de dados.

    • Digite 1 se desejar iniciar no modo independente ou 2 para sair [1]:

      Digite 1.

    • Insira o local dos recursos estáticos do APEX:

      Se você descompactou os arquivos de instalação do APEX em /home/apexuser, insira /home/apexuser/apex/images. Caso contrário, digite unzip_path/apex/images, onde unzip_path é o diretório onde você descompactou o arquivo.

    • Digite 1 se estiver usando HTTP ou 2 se estiver usando HTTPS [1]:

      Se você digitar 1, especifique a porta HTTP. Se você digitar 2, especifique a porta HTTPS e o nome do host SSL. A opção HTTPS solicita que você especifique como fornecerá o certificado:

      • Digite 1 para usar o certificado autoassinado.

      • Digite 2 para fornecer seu próprio certificado. Se você inserir 2, especifique o caminho para o certificado SSL e o caminho para a chave privada do certificado SSL.

  8. Defina uma senha para o usuário admin do APEX. Para fazer isso, use o SQL*Plus para conectar à sua instância de banco de dados como o usuário principal e execute os comandos a seguir.

    EXEC rdsadmin.rdsadmin_util.grant_apex_admin_role; grant APEX_ADMINISTRATOR_ROLE to master; @/home/apexuser/apex/apxchpwd.sql

    Substitua master pelo seu nome de usuário principal. Quando o script apxchpwd.sql solicitar, insira uma nova senha admin.

  9. Inicie o listener do ORDS. Execute o código a seguir.

    java -jar ords.war

    Na primeira vez que iniciar o ORDS, você será solicitado a fornecer a localização dos recursos estáticos do APEX. Essa pasta de imagens está localizada no diretório /apex/images do diretório de instalação do APEX.

  10. Volte para a janela de administração do APEX no navegador e escolha Administration (Administração). Em seguida, escolha Application Express Internal Administration (Administração interna do Application Express). Quando forem solicitadas as credenciais, insira as seguintes informações:

    • Nome de usuárioadmin

    • Senha – a senha configurada com o script apxchpwd.sql

    Escolha Login (Fazer login) e, em seguida, defina uma nova senha para o usuário admin.

Agora o listener está pronto para ser usado.

Instalar e configurar o ORDS 22 e posterior

Agora você está pronto para instalar e configurar o Oracle Rest Data Services (ORDS) para uso com o Oracle APEX. Para os exemplos desta seção, vamos supor que o nome do host separado seja myapexhost.example.com e que o host esteja executando o Linux. As instruções do ORDS 22 são diferentes das instruções das versões anteriores.

Como instalar e configurar o ORDS 22 e posterior para usar com o Oracle APEX
  1. Acesse Oracle REST Data Services e examine o Readme da versão do ORDS que você planeja baixar. Verifique se você tem a versão necessária do Java instalada.

  2. Crie um diretório para a instalação do ORDS.

    mkdir /home/apexuser/ORDS cd /home/apexuser/ORDS
  3. Baixe o arquivo ords.version.number.zip ou ords-latest.zip em Oracle REST Data Services.

  4. Descompacte o arquivo no diretório /home/apexuser/ORDS.

  5. Conceda ao usuário mestre os privilégios necessários para instalar o ORDS.

    Depois que a opção APEX do Amazon RDS for instalada, conceda ao usuário mestre os privilégios necessários para instalar o esquema do ORDS. É possível fazer isso fazendo login no banco de dados e executando os comandos a seguir. Substitua MASTER_USER pelo nome do seu usuário mestre em letras maiúsculas.

    Importante

    Ao inserir o nome de usuário, use letras maiúsculas, a menos que você tenha criado o usuário com um identificador que diferencia letras maiúsculas de minúsculas. Por exemplo, se você executar CREATE USER myuser ou CREATE USER MYUSER, o dicionário de dados armazenará MYUSER. No entanto, se você usar aspas duplas em CREATE USER "MyUser", o dicionário de dados armazenará MyUser. Para ter mais informações, consulte Concessão de privilégios SELECT ou EXECUTE a objetos SYS.

    exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_ROLE_PRIVS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONS_COLUMNS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONSTRAINTS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_OBJECTS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_PROCEDURES', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TABLES', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('USER_VIEWS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('WPIUTL', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SESSION', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_UTILITY', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOB', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_ASSERT', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_OUTPUT', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SCHEDULER', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('HTP', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('OWA', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('WPG_DOCLOAD', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_CRYPTO', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_METADATA', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SQL', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('UTL_SMTP', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_NETWORK_ACL_ADMIN', 'MASTER_USER', 'EXECUTE', true); exec rdsadmin.rdsadmin_util.grant_sys_object('SESSION_PRIVS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_USERS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_NETWORK_ACL_PRIVILEGES', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_NETWORK_ACLS', 'MASTER_USER', 'SELECT', true); exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_REGISTRY', 'MASTER_USER', 'SELECT', true);
    nota

    Os comandos anteriores se aplicam ao ORDS 22 e posterior.

  6. Instale o esquema do ORDS usando o script ords baixado. Especifique os diretórios para conter arquivos de configuração e arquivos de log. A Oracle Corporation recomenda não colocar esses diretórios dentro do diretório que contém o software do produto ORDS.

    mkdir -p /home/apexuser/ords_config /home/apexuser/ords_logs /home/apexuser/ORDS/bin/ords \ --config /home/apexuser/ords_config \ install --interactive --log-folder /home/apexuser/ords_logs

    Para instâncias de banco de dados que executam a arquitetura de banco de dados de contêiner (CDB), use o ORDS 23.2 e posterior e transmita o argumento --pdb-skip-disable-lockdown ao instalar o ORDS.

    /home/apexuser/ORDS/bin/ords \ --config /home/apexuser/ords_config \ install --interactive --log-folder /home/apexuser/ords_logs --pdb-skip-disable-lockdown

    O prompt do programa solicitará as informações a seguir. Os valores padrão estão entre colchetes. Para ter mais informações, consulte o tópico de Introdução ao Oracle REST Data Services, na documentação da Oracle.

    • Choose the type of installation:

      Escolha 2 instalar esquemas do ORDS no banco de dados e criar um grupo de conexões de banco de dados nos arquivos de configuração do ORDS local.

    • Specify the database connection type to use. Enter number for [1] Basic [2] TNS [3] Custom URL:

      Escolha o tipo de conexão desejada. Este exemplo pressupõe que você escolha 1.

    • Enter the name of the database server [localhost]: DB_instance_endpoint

      Escolha o padrão ou insira o valor correto.

    • Enter the database listener port [1521]: DB_instance_port

      Escolha o padrão 1521 ou insira o valor correto.

    • Enter the database service name [orcl]:

      Insira o nome do banco de dados usado pela instância de banco de dados do RDS para Oracle.

    • Provide database user name with administrator privileges

      Digite o nome do usuário mestre da instância de banco de dados do RDS para Oracle.

    • Enter the database password for [username]:

      Digite a senha do usuário mestre da instância de banco de dados do RDS para Oracle.

    • Enter the default tablespace for ORDS_METADATA and ORDS_PUBLIC_USER [SYSAUX]:

    • Enter the temporary tablespace for ORDS_METADATA [TEMP]. Enter the default tablespace for ORDS_PUBLIC_USER [USERS]. Enter the temporary tablespace for ORDS_PUBLIC_USER [TEMP].

    • Enter a number to select additional feature(s) to enable [1]:

    • Enter a number to configure and start ORDS in standalone mode [1]:

      Escolha 2 para ignorar a inicialização do ORDS imediatamente no modo autônomo.

    • Enter a number to select the protocol [1] HTTP

    • Enter the HTTP port [8080]:

    • Enter the APEX static resources location:

      Insira o caminho para os arquivos de instalação do APEX (/home/apexuser/apex/images).

  7. Defina uma senha para o usuário admin do APEX. Para fazer isso, use o SQL*Plus para conectar à sua instância de banco de dados como o usuário principal e execute os comandos a seguir.

    EXEC rdsadmin.rdsadmin_util.grant_apex_admin_role; grant APEX_ADMINISTRATOR_ROLE to master; @/home/apexuser/apex/apxchpwd.sql

    Substitua master pelo seu nome de usuário principal. Quando o script apxchpwd.sql solicitar, insira uma nova senha admin.

  8. Execute o ORDS no modo autônomo usando o script ords com o comando serve. Em relação a implantações de produção, pense em usar servidores de aplicações Java EE compatíveis, como Apache Tomcat ou Oracle WebLogic Server. Para ter mais informações, consulte Deploying and Monitoring Oracle REST Data Services, na documentação do Oracle Database.

    /home/apexuser/ORDS/bin/ords \ --config /home/apexuser/ords_config serve \ --port 8193 \ --apex-images /home/apexuser/apex/images

    Se o ORDS estiver em execução e não conseguir acessar a instalação do APEX, você poderá ver o erro a seguir, principalmente em instâncias que não sejam de CDB.

    The procedure named apex_admin could not be accessed, it may not be declared, or the user executing this request may not have been granted execute privilege on the procedure, or a function specified by security.requestValidationFunction configuration property has prevented access.

    Para corrigir esse erro, altere a função de validação de solicitação usada pelo ORDS executando o script ords com o comando config. Por padrão, o ORDS usa o procedimento ords_util.authorize_plsql_gateway, que só é compatível com instâncias do CDB. Em relação a instâncias que não sejam de CDB, é possível alterar esse procedimento para o pacote wwv_flow_epg_include_modules.authorize. Consulte a documentação do Oracle Database e do Oracle Support para conhecer as práticas recomendadas sobre como configurar a função de validação de solicitações adequada para seu caso de uso.

  9. Volte para a janela de administração do APEX no navegador e escolha Administration (Administração). Em seguida, escolha Application Express Internal Administration (Administração interna do Application Express). Quando forem solicitadas as credenciais, insira as seguintes informações:

    • Nome de usuárioadmin

    • Senha – a senha configurada com o script apxchpwd.sql

    Escolha Login (Fazer login) e, em seguida, defina uma nova senha para o usuário admin.

Agora o listener está pronto para ser usado.