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
-
Acesse Oracle REST Data Services
e examine o Readme. Verifique se você tem a versão necessária do Java instalada. -
Crie um diretório para a instalação do ORDS.
mkdir /home/apexuser/ORDS cd /home/apexuser/ORDS
-
Baixe o arquivo
ords.
de Serviços de dados Oracle RESTversion.number
.zip. -
Descompacte o arquivo no diretório
/home/apexuser/ORDS
. -
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
-
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
pelo nome do seu usuário mestre em letras maiúsculas.MASTER_USER
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
ouCREATE USER MYUSER
, o dicionário de dados armazenaráMYUSER
. No entanto, se você usar aspas duplas emCREATE 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.
-
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; escolha1
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
, ondeunzip_path
/apex/imagesunzip_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ê digitar2
, 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ê inserir2
, especifique o caminho para o certificado SSL e o caminho para a chave privada do certificado SSL.
-
-
-
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.sqlSubstitua
pelo seu nome de usuário principal. Quando o scriptmaster
apxchpwd.sql
solicitar, insira uma nova senhaadmin
. -
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. -
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ário –
admin
-
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
-
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. -
Crie um diretório para a instalação do ORDS.
mkdir /home/apexuser/ORDS cd /home/apexuser/ORDS
-
Baixe o arquivo
ords.
ouversion.number
.zipords-latest.zip
em Oracle REST Data Services. -
Descompacte o arquivo no diretório
/home/apexuser/ORDS
. -
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
pelo nome do seu usuário mestre em letras maiúsculas.MASTER_USER
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
ouCREATE USER MYUSER
, o dicionário de dados armazenaráMYUSER
. No entanto, se você usar aspas duplas emCREATE 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.
-
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
).
-
-
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.sqlSubstitua
pelo seu nome de usuário principal. Quando o scriptmaster
apxchpwd.sql
solicitar, insira uma nova senhaadmin
. -
Execute o ORDS no modo autônomo usando o script
ords
com o comandoserve
. 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 comandoconfig
. Por padrão, o ORDS usa o procedimentoords_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 pacotewwv_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. -
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ário –
admin
-
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.