DBMS_CLOUD para Gerenciamento de Acesso
Esta seção aborda os subprogramas DBMS_CLOUD
usados para gerenciamento de acesso.
Tópicos Relacionados
Pré-requisitos
Como desenvolvedor, você pode usar procedimentos DBMS_CLOUD com Autonomous Databases implantados no Oracle Public Cloud, Multicloud ou Exadata Cloud@Customer.
Dependendo da opção de implantação, os pré-requisitos a seguir devem ser atendidos para usar os procedimentos DBMS_CLOUD com provedores de serviços Amazon S3, Azure Blob Storage e Google Cloud Storage.
- Crie um gateway NAT na Rede Virtual na Nuvem (VCN) em que seus recursos do Autonomous Database residem seguindo as instruções em Criar um Gateway NAT na Documentação do Oracle Cloud Infrastructure.
- Após criar o gateway NAT, adicione uma regra de roteamento e uma regra de segurança de saída a cada sub-rede (na VCN) na qual os recursos do Autonomous Database residem para que esses recursos possam usar o gateway para obter uma chave pública da sua instância do Azure AD:
- Vá para a página Detalhes da Sub-rede da sub-rede.
- Na guia Informações da Sub-rede, clique no nome da Tabela de Rota da sub-rede para exibir sua respectiva página Detalhes da Tabela de Rota.
- Na tabela de Regras de Roteamento existentes, verifique se já existe uma regra com as seguintes características:
- Destino: 0.0.0.0/0
- Tipo de Destino: Gateway NAT
- Alvo: O nome do gateway NAT recém-criado na VCN
Se essa regra não existir, clique em Adicionar Regras de Rota e adicione uma regra de roteamento com essas características.
- Retorne à página Detalhes da Sub-rede da sub-rede.
- Na tabela Listas de Segurança da sub-rede, clique no nome da lista de segurança da sub-rede para exibir a página Detalhes da Lista de Segurança.
- No menu lateral, em Recursos, clique em Regras de Saída.
- Na tabela de Regras de Saída existentes, verifique se já existe uma regra com as seguintes características:
- Tipo de Destino: CIDR
- Destino: 0.0.0.0/0
- Protocolo IP: TCP
- Faixa de Portas de Origem: 443
- Faixa de Portas de Destino: Todas
Se essa regra não existir, clique em Adicionar Regras de Saída e adicione uma regra de saída com essas características.
As definições de Proxy HTTP em seu ambiente devem permitir que o banco de dados acesse o provedor de serviços em nuvem.
Observação:
A configuração de rede, incluindo o Proxy HTTP, só poderá ser editada até que o Exadata Infrastructure esteja no estado Exige Ativação. Depois de ativado, você não poderá editar essas configurações.A configuração de um Proxy HTTP para uma Infraestrutura do Exadata já provisionada precisa de uma Solicitação de Serviço (SR) no My Oracle Support. Consulte Criar uma Solicitação de Serviço no My Oracle Support para obter detalhes.
DBMS_CLOUD Subprogramas para Gerenciamento de Acesso
Os subprogramas para gerenciamento de credenciais no pacote DBMS_CLOUD, incluindo criar, excluir e atualizar credenciais.
Subprograma | Descrição |
---|---|
Este procedimento armazena credenciais de serviço de nuvem no Autonomous Database. | |
Este procedimento remove uma credencial existente do Autonomous Database. | |
Este procedimento atualiza atributos de credenciais de serviço em nuvem no Autonomous Database. |
Procedimento CREATE_CREDENTIAL
Este procedimento armazena credenciais de serviço de nuvem no Autonomous Database.
Use credenciais de serviço de nuvem armazenadas para acessar o serviço de nuvem para carregamento de dados, para consulta de dados externos que residem na nuvem ou para outros casos ao usar procedimentos DBMS_CLOUD
com um parâmetro credential_name
.
Sintaxe
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name IN VARCHAR2,
username IN VARCHAR2,
password IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name IN VARCHAR2,
user_ocid IN VARCHAR2,
tenancy_ocid IN VARCHAR2,
private_key IN VARCHAR2,
fingerprint IN VARCHAR2);
Parâmetros
Parâmetro | Descrição |
---|---|
|
O nome da credencial a ser armazenada. O parâmetro |
|
Os argumentos |
|
Os argumentos |
|
Especifica o OCID do usuário. Consulte Onde Obter o OCID da Tenancy e o OCID do Usuário para obter detalhes sobre como obter o OCID do Usuário. |
|
Especifica o OCID da tenancy. Consulte Onde Obter o OCID da Tenancy e o OCID do Usuário para obter detalhes sobre como obter o OCID da Tenancy. |
|
Especifica a chave privada gerada. Não há suporte para chaves privadas geradas com uma frase-senha. É necessário gerar a chave privada sem uma frase-senha. Consulte Como Gerar uma Chave de Assinatura de API para obter detalhes sobre a geração de um par de chaves no formato PEM. |
|
Especifica uma impressão digital. Após o upload de uma chave pública gerada para a conta do usuário, a impressão digital é exibida na console. Use a impressão digital exibida para esse argumento. Consulte Como Obter a Impressão Digital da Chave e Como Gerar uma Chave de Assinatura de API para obter mais detalhes. |
Observações sobre Uso
-
Esta operação armazena as credenciais no banco de dados em um formato criptografado.
-
Você pode ver as credenciais no seu esquema consultando a tabela
user_credentials
. -
O usuário
ADMIN
pode ver todas as credenciais consultando a tabeladba_credentials
. -
Você só precisa criar credenciais uma vez, a menos que suas credenciais de serviço de nuvem mudem. Depois de armazenar as credenciais, você poderá usar o mesmo nome de credencial para procedimentos
DBMS_CLOUD
que exigem um parâmetrocredential_name
. -
Este procedimento é sobrecarregado. Se você fornecer um dos atributos de autenticação baseados em chave,
user_ocid
,tenancy_ocid
,private_key
oufingerprint
, será considerado que que a chamada é uma credencial baseada na Chave de Assinatura do Oracle Cloud Infrastructure. -
Você pode listar credenciais na view
ALL_CREDENTIALS
. Por exemplo, execute o seguinte comando para listar credenciais:SELECT credential_name, username, comments FROM all_credentials;
Credenciais do Oracle Cloud Infrastructure (Tokens de Autenticação)
Para o Oracle Cloud Infrastructure, o username
é o seu nome de usuário do Oracle Cloud Infrastructure. A password
é o seu token de autenticação do Oracle Cloud Infrastructure. Consulte Como Trabalhar com Tokens de Autenticação.
Por exemplo:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'DEF_CRED_NAME',
username => 'adb_user@example.com',
password => 'password' );
END;
/
Use credenciais baseadas em Token de Autenticação ao autenticar chamadas para o OCI Object Storage. Para chamadas para qualquer outro tipo de serviço de nuvem do Oracle Cloud Infrastructure, use Credenciais Baseadas em Chave de Assinatura do Oracle Cloud Infrastructure.
Credenciais Baseadas em Chave de Assinatura do Oracle Cloud Infrastructure
Use os parâmetros relacionados à chave de assinatura do Oracle Cloud Infrastructure, incluindo: user_ocid
, tenancy_ocid
, private_key
e fingerprint
com a autenticação de Chave de Assinatura do Oracle Cloud Infrastructure.
Por exemplo:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL (
credential_name => ‘OCI_KEY_CRED’,
user_ocid => ‘ocid1.user.oc1..aaaaaaaauq54mi7zdyfhw33ozkwuontjceel7fok5nq3bf2vwetkpqsoa’,
tenancy_ocid => ‘ocid1.tenancy.oc1..aabbbbbbaafcue47pqmrf4vigneebgbcmmoy5r7xvoypicjqqge32ewnrcyx2a’,
private_key => ‘MIIEogIBAAKCAQEAtUnxbmrekwgVac6FdWeRzoXvIpA9+0r1.....wtnNpESQQQ0QLGPD8NM//JEBg=’,
fingerprint => ‘f2:db:f9:18:a4:aa:fc:94:f4:f6:6c:39:96:16:aa:27’);
END;
/
Não há suporte para chaves privadas geradas com uma frase-senha. É necessário gerar a chave privada sem uma frase-senha. Consulte Como Gerar uma Chave de Assinatura de API para obter mais informações.
Credenciais do Amazon Web Services (AWS)
Se seus arquivos de origem residirem no Amazon S3 ou você estiver chamando uma API da AWS, username
será seu ID da chave de acesso da AWS e password
será sua chave de acesso secreta da AWS. Consulte AWS Identity and Access Management.
Credenciais do Microsoft Azure
Se seus arquivos de origem residirem no Armazenamento de Blobs do Azure ou você estiver chamando uma API do Azure, username
será o nome da sua conta de armazenamento do Azure e password
será uma chave de acesso à conta de armazenamento do Azure. Consulte Sobre contas de armazenamento do Azure.
Credenciais Compatíveis com o Amazon S3
Serviço | Informações de Credenciais |
---|---|
Google Cloud Storage |
Se seus arquivos de origem residirem no Google Cloud Storage ou você estiver chamando APIs do Google Cloud Storage, será necessário definir um projeto padrão do Google e obter uma chave HMAC para criar credenciais a serem fornecidas com URLs compatíveis com o S3 do Google Cloud Storage. Use o id da chave HMAC como o nome do usuário e o segredo HMAC como a senha. Consulte Projetos e Chaves HMAC para obter mais informações. |
Procedimento DROP_CREDENTIAL
Este procedimento remove uma credencial existente do Autonomous Database.
Sintaxe
DBMS_CLOUD.DROP_CREDENTIAL
(
credential_name IN VARCHAR2);
Parâmetros
Parâmetro | Descrição |
---|---|
|
O nome da credencial a ser removida. |
Procedimento UPDATE_CREDENTIAL
Este procedimento atualiza um atributo com um novo valor para um credential_name
especificado.
Use credenciais armazenadas para carregamento de dados, para consultar dados externos que residem na Nuvem ou onde quer que você use procedimentos DBMS_CLOUD
com o parâmetro credential_name
.
Sintaxe
DBMS_CLOUD.UPDATE_CREDENTIAL
(
credential_name IN VARCHAR2,
attribute IN VARCHAR2,
value IN VARCHAR2);
Parâmetros
Parâmetro | Descrição |
---|---|
|
O nome da credencial a ser atualizada. |
|
Nome do atributo a ser atualizado. Para uma credencial de tipo de nome de usuário/senha, os valores válidos de Consulte Procedimento CREATE_CREDENTIAL para obter mais informações. |
|
Novo valor para o atributo especificado. |
Observações sobre Uso
-
O valor do nome do usuário diferencia maiúsculas de minúsculas. Ele não pode conter aspas duplas ou espaços.
-
O usuário
ADMIN
pode ver todas as credenciais consultandodba_credentials
. -
Você só precisa criar credenciais uma vez, a menos que suas credenciais de serviço de nuvem mudem. Depois de armazenar as credenciais, você poderá usar o mesmo nome de credencial para procedimentos
DBMS_CLOUD
que exigem um parâmetrocredential_name
. -
Você pode listar credenciais na view
ALL_CREDENTIALS
. Por exemplo, execute o seguinte comando para listar credenciais:SELECT credential_name, username, comments FROM all_credentials;
Exemplos
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL
(
credential_name => 'OBJ_STORE_CRED',
attribute => 'PASSWORD',
value => 'password');
END;
/
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL
(
credential_name => 'ARN_CRED',
attribute => 'aws_role_arn',
value => 'NEW_AWS_ARN');
END;
/