Pacote DBMS_CLOUD_ADMIN

Esta seção abrange os subprogramas DBMS_CLOUD_ADMIN fornecidos com o Autonomous Database.

Subprograma Descrição

Procedimento ATTACH_FILE_SYSTEM

Este procedimento anexa um sistema de arquivos em um diretório no banco de dados.

Procedimento CREATE_DATABASE_LINK

Esse procedimento cria um link de banco de dados para um banco de dados de destino. Há opções para criar um link de banco de dados com outra instância do Autonomous Database, com um Oracle Database que não seja um Autonomous Database ou com um não Oracle Database usando a conectividade heterogênea gerenciada pela Oracle.

Procedimento DETACH_FILE_SYSTEM

Este procedimento desanexa um sistema de arquivos de um diretório no banco de dados.

Procedimento DISABLE_EXTERNAL_AUTHENTICATION

Este procedimento desativa a autenticação externa da instância do Autonomous Database.

Procedimento DROP_DATABASE_LINK

Esse procedimento elimina um link de banco de dados.

Procedimento ENABLE_EXTERNAL_AUTHENTICATION

Este procedimento permite que um usuário faça log-on no Autonomous Database usando o esquema de autenticação externa especificado.

Procedimento ATTACH_FILE_SYSTEM

Este procedimento anexa um sistema de arquivos no banco de dados.

O procedimento DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM anexa um sistema de arquivos em seu banco de dados e armazena informações sobre o sistema de arquivos na view DBA_CLOUD_FILE_SYSTEMS.

Sintaxe

DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (
    file_system_name         IN VARCHAR2,
    file_system_location     IN VARCHAR2,
    directory_name           IN VARCHAR2,
    description              IN VARCHAR2 DEFAULT NULL,
    params                   IN CLOB DEFAULT NULL
);

Parâmetros

Parâmetro Descrição

file_system_name

Especifica o nome do sistema de arquivos.

Esse parâmetro é obrigatório.

file_system_location

Especifica o local do sistema de arquivos.

O valor fornecido com file_system_location consiste em um FQDN (Nome de Domínio Totalmente Qualificado) e um caminho de arquivo no formato: FQDN:file_path.

Por exemplo:

  • FQDN: myhost.sub000445.myvcn.oraclevcn.com

    Para o Oracle Cloud Infrastructure File Storage, defina o FQDN em Mostrar Opções Avançadas ao criar um sistema de arquivos. Consulte Criando Sistemas de Arquivos para obter mais informações.

  • Caminho do Arquivo: /results

Esse parâmetro é obrigatório.

directory_name

Especifica o nome do diretório do sistema de arquivos anexado. O diretório deve existir.

Esse parâmetro é obrigatório.

description

(Opcional) Fornece uma descrição da tarefa.

params

Uma string JSON que fornece um parâmetro adicional para o sistema de arquivos.

  • nfs_version: Especifica a versão do NFS a ser usada quando o NFS estiver anexado (NFSv3 ou NFSv4). Valores válidos: 3, 4.

    Valor default: 3

Exemplos de:

Anexe a um sistema de arquivos NFSv3:

BEGIN
   DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (
    file_system_name      => 'FSS',
    file_system_location  => 'myhost.sub000445.myvcn.oraclevcn.com:/results',
    directory_name        => 'FSS_DIR',
    description           => 'Source NFS for sales data'
  );
END;
/     

Anexe a um sistema de arquivos NFSv4:

BEGIN
   DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (
    file_system_name      => 'FSS',
    file_system_location  => 'myhost.sub000445.myvcn.oraclevcn.com:/results',
    directory_name        => 'FSS_DIR',  
    description           => 'Source NFS for sales data',
    params                => JSON_OBJECT('nfs_version' value 4)
);                                                      
END;                                                        
/

Observações sobre Uso

  • Para executar esse procedimento, você deve fazer log-in como usuário ADMIN ou ter o privilégio EXECUTE em DBMS_CLOUD_ADMIN.

  • Você deve ter o privilégio WRITE no objeto de diretório no banco de dados para anexar um sistema de arquivos usando DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM.

  • O procedimento DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM só pode anexar um Serviço de Armazenamento de Arquivos privado em bancos de dados com Pontos Finais Privados ativados.

    Consulte OCI File Storage Service e Configurar um Sistema de Desenvolvimento para Acessar o Banco de Dados para obter mais informações.

  • O procedimento DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM procura o nome do host do Sistema de Arquivos de Rede na VCN (rede virtual na nuvem) do cliente. O erro "ORA-20000: Mounting NFS fails" será retornado se o nome do host especificado no local não puder ser localizado.

  • O Oracle Cloud Infrastructure File Storage usa NFSv3 para compartilhar

  • Se você anexar a sistemas que não são do Oracle Cloud Infrastructure File Storage, o procedimento suportará NFSv3 e NFSv4

  • Se você tiver um servidor NFS anexado que use NFSv3 e a versão do NFS for atualizada para NFSv4 no servidor NFS, execute DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM e, em seguida, DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (usando o parâmetro params com nfs_version definido como 4). Isso anexa NFS ao protocolo de correspondência para que o Autonomous Database possa acessar o Servidor NFSv4. Sem desanexar e depois reanexar, o servidor NFS ficará inacessível e você poderá ver um erro como: "Protocol not supported".

Procedimento CREATE_DATABASE_LINK

Esse procedimento cria um link de banco de dados para um banco de dados de destino no esquema que chama a API.

Os formulários sobrecarregados suportam o seguinte:

  • Quando você usa o parâmetro gateway_params, isso permite criar um link de banco de dados com conectividade heterogênea gerenciada pela Oracle em que o link é para um banco de dados não Oracle suportado.

  • Quando você usa o parâmetro rac_hostnames, isso permite criar um link de banco de dados de um Autonomous Database em um ponto final privado para um banco de dados Oracle RAC de destino. Nesse caso, você usa o parâmetro rac_hostnames para especificar os nomes de host de um ou mais nós individuais do banco de dados Oracle RAC de destino.

Sintaxe

DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
       db_link_name         IN VARCHAR2,
       hostname             IN VARCHAR2,
       port                 IN NUMBER,
       service_name         IN VARCHAR2,
       ssl_server_cert_dn   IN VARCHAR2 DEFAULT,
       credential_name      IN VARCHAR2 DEFAULT,
       directory_name       IN VARCHAR2 DEFAULT,
       gateway_link         IN BOOLEAN DEFAULT,
       public_link          IN BOOLEAN DEFAULT,
       private_target       IN BOOLEAN DEFAULT
       gateway_params       IN CLOB DEFAULT);
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
       db_link_name         IN VARCHAR2,
       rac_hostnames        IN CLOB,
       port                 IN NUMBER,
       service_name         IN VARCHAR2,
       ssl_server_cert_dn   IN VARCHAR2 DEFAULT,
       credential_name      IN VARCHAR2 DEFAULT,
       directory_name       IN VARCHAR2 DEFAULT,
       gateway_link         IN BOOLEAN DEFAULT,
       public_link          IN BOOLEAN DEFAULT,
       private_target       IN BOOLEAN DEFAULT);

Parâmetros

Parâmetro Descrição

db_link_name

O nome do link de banco de dados a ser criado.

hostname

O nome do host do banco de dados de destino.

A especificação de localhost para hostname não é permitida.

Quando você especificar uma conexão com conectividade heterogênea gerenciada pela Oracle fornecendo o parâmetro gateway_params, observe o seguinte:

  • Quando o valor db_type é google_bigquery, o hostname não é usado e você pode fornecer um valor como example.com.

  • Quando o valor db_type é snowflake, hostname é o identificador da conta do Snowflake. Para localizar seu identificador da conta do Snowflake, consulte Formatos de Identificador de Conta por Plataforma e Região da Nuvem.

Use esse parâmetro ou rac_hostnames, não use ambos.

A entrada DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK deve mencionar o nome da verificação do Autonomous Database Dedicado de destino como o parâmetro 'hostname'.

rac_hostnames

Especifica nomes de host para o banco de dados Oracle RAC de destino. O valor é um array JSON que especifica um ou mais nomes de host individuais para os nós do banco de dados Oracle RAC de destino. Vários nomes de host podem ser informados em JSON, separados por um ",". Por exemplo:

'["sales1-svr1.domain", "sales1-svr2.domain",
      "sales1-svr3.domain"]'

Quando o destino for um banco de dados Oracle RAC, use o parâmetro rac_hostnames para especificar um ou mais nomes de host com DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. Isso permite que você aproveite os recursos de alta disponibilidade do Oracle RAC. O uso de um endereço IP, IP do SCAN ou nome de host do SCAN no valor rac_hostnames não é suportado.

Quando você especifica uma lista de nomes de host no parâmetro rac_hostnames, CREATE_DATABASE_LINK usa todos os nomes de host especificados como endereços na string de conexão. Se um dos hosts especificados não estiver disponível no banco de dados Oracle RAC de destino, o Autonomous Database tentará estabelecer conexão automaticamente usando outro nome de host da lista.

Use esse parâmetro ou hostname, não use ambos.

Não é permitido especificar localhost para um valor rac_hostname.

port

Especifica a porta das conexões com o banco de dados de destino.

Quando você especificar uma conexão com conectividade heterogênea gerenciada pela Oracle usando o parâmetro gateway_params, defina a porta com base no valor db_type:

  • awsredshift: use a porta 5439
  • azure: use a porta 1433
  • db2: use a porta 2500 para versões Db2 >= 11.5.6
  • db2: use a porta 5000 para versões Db2 <= 11.5.5
  • google_analytics: use a porta 443
  • google_bigquery: use a porta 443
  • hive: use a porta 433
  • mongodb: use a porta 27017
  • mysql: use a porta 3306
  • mysql_community: use a porta 3306
  • postgres: use a porta 5432
  • salesforce: use a porta 19937
  • servicenow: use a porta 443
  • snowflake: use a porta 443

service_name

O service_name com o qual estabelecer um link. Para um Autonomous Database de destino, localize o nome do serviço por um dos seguintes métodos:

  • Procure no arquivo tnsnames.ora no wallet.zip que você baixa de um Autonomous Database para sua conexão.

  • Clique em Conexão do banco de dados na Console do Oracle Cloud Infrastructure. Cada string de conexão listada na coluna String de conexão inclui uma entrada service_name com a string de conexão do serviço correspondente. Consulte Exibir Strings de Conexão de um Autonomous Database para obter mais informações.

  • Consulte a view V$SERVICES. Por exemplo:

    SELECT name FROM V$SERVICES;

Quando você especifica uma conexão com a conectividade heterogênea gerenciada pela Oracle usando o parâmetro gateway_params, service_name é o nome do banco de dados não Oracle.

ssl_server_cert_dn

O valor DN encontrado no certificado do servidor.

A conectividade heterogênea gerenciada pela Oracle é pré-configurada com uma wallet que contém a maioria dos certificados SSL comuns de raiz confiável e intermediários. O ssl_server_cert_dn deve ser NULL quando você fornecer o parâmetro gateway_params ou não incluir o parâmetro ssl_server_cert_dn (o valor padrão é NULL).

Link de Ponto Final Público para um Destino do Autonomous Database sem uma Wallet:

Para estabelecer conexão com um destino do Autonomous Database em um ponto final público sem uma wallet (TLS):

  • O parâmetro directory_name deve ser NULL.
  • O parâmetro ssl_server_cert_dn deve ser NULL ou não incluir esse parâmetro (o valor padrão é NULL).

Link de Ponto Final Privado sem uma Wallet:

Para estabelecer conexão com um Oracle Database em um ponto final privado sem uma wallet:

  • O banco de dados de destino deve estar em um ponto final privado.
  • O parâmetro directory_name deve ser NULL.
  • O parâmetro ssl_server_cert_dn deve ser NULL ou não incluir esse parâmetro (o padrão é NULL).
  • O parâmetro private_target deve ser TRUE.
credential_name

O nome de uma credencial armazenada criada com DBMS_CLOUD.CREATE_CREDENTIAL. Essa é a credencial para acessar o banco de dados de destino.

directory_name

O diretório do arquivo cwallet.sso. O valor padrão desse parâmetro é 'data_pump_dir'.

A conectividade heterogênea gerenciada pela Oracle é pré-configurada com uma wallet que contém a maioria dos certificados SSL comuns de raiz confiável e intermediários. O parâmetro directory_name não é obrigatório quando você fornece o parâmetro gateway_params.

Link de Ponto Final Público para um Destino do Autonomous Database sem uma Wallet:

Para estabelecer conexão com um Autonomous Database em um ponto final público sem uma wallet (TLS):

  • O parâmetro directory_name deve ser NULL.
  • O parâmetro ssl_server_cert_dn deve ser NULL ou não incluir esse parâmetro (o valor padrão é NULL).

Além disso, para estabelecer conexão com um Autonomous Database com TCP, o parâmetro ssl_server_cert_dn deve ser NULL ou não incluir esse parâmetro (o valor padrão é NULL).

Link de Ponto Final Privado sem uma Wallet:

Para estabelecer conexão com um Oracle Database de destino em um ponto final privado sem uma wallet:

  • O banco de dados de destino deve estar em um ponto final privado.
  • O parâmetro directory_name deve ser NULL.
  • O parâmetro ssl_server_cert_dn deve ser NULL ou não incluir esse parâmetro (o valor padrão é NULL).
  • O parâmetro private_target deve ser TRUE.
gateway_link

Indica se o link de banco de dados foi criado para outro Oracle Database ou para um Oracle Database Gateway.

Se gateway_link for definido como FALSE, isso especificará um link de banco de dados para outro Autonomous Database ou para outro Oracle Database.

Se gateway_link for definido como TRUE, isso especificará um link de banco de dados para um sistema não Oracle. Isso cria um descritor de conexão na definição de link de banco de dados que especifica (HS=OK).

Quando gateway_link é definido como TRUE e gateway_params é NULL, isso especifica um link de banco de dados para um gateway Oracle gerenciado pelo cliente.

O valor padrão desse parâmetro é FALSE.

public_link

Indica se o link de banco de dados é criado como link público.

Para executar DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK com esse parâmetro definido como TRUE, o usuário que chama o procedimento deve ter o privilégio EXECUTE na credencial associada ao link de banco de dados público e deve ter o privilégio de sistema CREATE PUBLIC DATABASE LINK. O privilégio EXECUTE na credencial pode ser concedido pelo usuário ADMIN ou pelo proprietário da credencial.

O valor padrão desse parâmetro é FALSE.

private_target

Quando um link de banco de dados acessar um nome de host que precisa ser resolvido em um servidor DNS da VCN, especifique o parâmetro private_target com o valor TRUE.

Quando private_target é TRUE, o parâmetro hostname deve ser um único nome de host (em um ponto final privado, o uso de um endereço IP, um IP SCAN ou um nome de host SCAN não é suportado).

O valor padrão desse parâmetro é FALSE.

gateway_params

db_type Esse parâmetro especifica o tipo de banco de dados de destino para conectividade heterogênea gerenciada pela Oracle para estabelecer conexão com bancos de dados não Oracle. O valor db_type é um dos seguintes:

  • awsredshift
  • azure
  • db2
  • google_analytics
  • google_bigquery

    * Consulte Observações de Uso para obter suporte adicional gateway_params quando db_type for google_bigquery.

  • hive

    * Consulte Observações de Uso para obter suporte adicional gateway_params quando db_type for hive.

  • mongodb
  • mysql
  • postgres
  • salesforce

    * Consulte Observações de Uso para obter suporte adicional gateway_params quando db_type for salesforce.

  • servicenow

    * Consulte Observações de Uso para obter suporte adicional gateway_params quando db_type for servicenow.

  • snowflake

    * Consulte Observações de Uso para obter suporte adicional gateway_params quando db_type for snowflake.

  • NULL

    Quando gateway_params é NULL e gateway_link é definido como TRUE, isso especifica um link de banco de dados para um gateway Oracle gerenciado pelo cliente.

Especifique o parâmetro com o form json_object.

Por exemplo:

gateway_params => json_object('db_type' value 'awsredshift')

Quando gateway_params é NULL e private_target é TRUE, se directory_name for NULL, um link de banco de dados baseado em TCP será criado.

Quando gateway_params é NULL e private_target é TRUE, se directory_name for NULL, um link de banco de dados baseado em TCPS será criado.

Observações sobre Uso

  • Quando você especifica o parâmetro gateway_params, para alguns valores db_type, há suporte para parâmetros gateway_params adicionais:

    db_type Valores gateway_params Adicionais
    google_analytics

    Quando db_type for google_analytics, a credencial especificada deverá ser uma credencial OAuth do Google (gcp_oauth2) Consulte Procedimento CREATE_CREDENTIAL para obter mais informações.

    google_bigquery

    Quando db_type for google_bigquery, a credencial especificada deverá ser uma credencial OAuth do Google (gcp_oauth2) Consulte Procedimento CREATE_CREDENTIAL para obter mais informações.

    Quando db_type é google_bigquery, o parâmetro project é válido. Este parâmetro especifica o nome do projeto para google_bigquery e é obrigatório.

    O nome da tabela especificado quando você usa SELECT com o Google BigQuery deve estar entre aspas. Por exemplo:

    SELECT * FROM "sales"@GOOGLE_BIGQUERY_LINK
    hive

    Quando db_type é hive, o parâmetro http_path é válido. Esse parâmetro especifica o valor HttpPath, se necessário, para estabelecer conexão com a instância do Hive.

    salesforce

    Quando db_type é salesforce, o parâmetro: security_token é válido. Um token de segurança é um código alfanumérico que faz distinção entre maiúsculas e minúsculas. É necessário fornecer um valor security_token para acessar o Salesforce. Por exemplo:

    gateway_params => JSON_OBJECT(
         'db_type' value 'salesforce',
         'security_token' value 'security_token_value' )

    Consulte Redefinir Seu Token de Segurança para obter mais informações.

    servicenow

    Para estabelecer conexão com ServiceNow e obter dados, forneça os parâmetros de gateway directory_name e file_name. Esses parâmetros especificam um arquivo de modelo (arquivo de configuração REST) que mapeia a resposta JSON para o modelo relacional. O arquivo de modelo especifica os pontos finais, o mapeamento de tabela e o código de resposta HTTP para processar a resposta JSON. Consulte Sintaxe do arquivo de modelo e Arquivo de modelo de exemplo para obter mais informações.

    Quando você usa o parâmetro gateway_params com db_type servicenow, há duas opções suportadas:

    • Autenticação Básica: você deve fornecer o parâmetro gateway_params db_type com o valor 'servicenow' e fornecer os parâmetros directory_name e file_name com credenciais do tipo de nome de usuário/senha.

    • Autenticação OAuth 2.0: você deve fornecer o parâmetro gateway_params db_type com o valor 'servicenow' e os parâmetros directory_name, file_name e token_uri, juntamente com as credenciais do tipo OAuth.

    O parâmetro directory_name especifica o diretório com o arquivo de configuração REST ServiceNow. Você poderia criar esse diretório da seguinte forma:

    create or replace directory servicenow_dir as 'SERVICENOW_DIR';

    Obtenha e faça download do arquivo de configuração REST ServiceNow para o diretório especificado. Por exemplo:

    exec DBMS_CLOUD.get_object('servicenow_dir_cred',
         'https://objectstorage.<...>/servicenow.rest','SERVICENOW_DIR');

    Defina o valor file_name como o nome do arquivo de configuração REST que você baixou, "servicenow.rest".

    Em seguida, você pode usar o arquivo de configuração REST ServiceNow com autenticação básica ou OAuth2.0.

    snowflake

    Quando db_type é SNOWFLAKE, os parâmetros opcionais: role, schema e warehouse são válidos. Esses valores especificam um esquema, função ou valor de warehouse diferente do padrão. Por exemplo:

    gateway_params => JSON_OBJECT(
         'db_type' value 'snowflake',
         'role' value 'ADMIN',
         'schema' value 'PUBLIC',
         'warehouse' value 'TEST' )
  • Ao usar o parâmetro private_target, observe que os links de banco de dados de um Autonomous Database para um serviço de banco de dados que esteja em um ponto final privado só são suportados em regiões comerciais e em regiões do Governo dos EUA.

    Por padrão, esse recurso está ativado em todas as regiões comerciais.

    Por padrão, esse recurso está ativado nas regiões do Governo dos EUA para bancos de dados recém-provisionados.

    Para bancos de dados existentes do Governo dos EUA em um ponto final privado, se você quiser criar links de banco de dados de um Autonomous Database para um destino em uma região do Governo dos EUA, registre uma Solicitação de Serviço no Suporte do Oracle Cloud e solicite a ativação do ponto final privado no recurso de link de banco de dados das regiões do governo.

    As regiões do governo dos EUA incluem:

  • Ao estabelecer conexão com um banco de dados não Oracle, o link de banco de dados só será suportado se o banco de dados de destino estiver acessível por meio de um IP público ou de um nome de host público.
  • Para executar DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK com um usuário diferente de ADMIN, você precisa conceder privilégios EXECUTE e CREATE DATABASE LINK a esse usuário.Por exemplo, execute o seguinte comando como ADMIN para conceder privilégios a atpc_user:

    GRANT EXECUTE ON DBMS_CLOUD_ADMIN TO atpc_user;
    GRANT CREATE DATABASE LINK TO atpc_user;

    Além disso, quando você cria um Link de Banco de Dados em um esquema diferente do esquema ADMIN, por exemplo, em um esquema chamado atpc_user, o esquema atpc_user deve possuir a credencial que você usa com DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

  • Somente um arquivo de wallet é válido por diretório especificado com o parâmetro directory_name. Você só pode fazer upload de um cwallet.sso de cada vez para o diretório escolhido para arquivos de wallet. Isso significa que, com um cwallet.sso em um diretório, você só pode criar links de banco de dados para os bancos de dados cuja wallet nesse diretório é válida. Para usar vários arquivos cwallet.sso com links de banco de dados, crie diretórios adicionais e coloque cada cwallet.sso em um diretório diferente.

    Consulte Criar Diretório no Autonomous Database para obter informações sobre a criação de diretórios.

  • Para criar um link de banco de dados para um Autonomous Database, defina GLOBAL_NAMES como FALSE no banco de dados de origem (não Autonomous Database).

    SQL> ALTER SYSTEM SET GLOBAL_NAMES = FALSE;
     
    System altered.
    
    SQL> SHOW PARAMETER GLOBAL_NAMES
    NAME                     TYPE        VALUE
    ----------------------   ----------- -----------
    global_names             boolean     FALSE
    
  • Quando o parâmetro private_target é TRUE, o parâmetro hostname especifica um host privado na VCN.

Exemplos

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
     credential_name => 'DB_LINK_CRED',
     username => 'adb_user',
     password => 'password');
  DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
     db_link_name => 'SALESLINK', 
     hostname => 'adb.eu-frankfurt-1.oraclecloud.com', 
     port => '1522',
     service_name => 'example_medium.atpc.example.oraclecloud.com',
     ssl_server_cert_dn => 'CN=atpc.example.oraclecloud.com,OU=Oracle BMCS FRANKFURT,O=Oracle Corporation,L=Redwood City,ST=California,C=US',
     credential_name => 'DB_LINK_CRED');
END;
/
BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'AWS_REDSHIFT_LINK_CRED',
    username => 'NICK',
    password => 'password'
  );
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
          db_link_name => 'AWSREDSHIFT_LINK', 
          hostname => 'example.com', 
          port => '5439',
          service_name => 'example_service_name',
          ssl_server_cert_dn => NULL,
          credential_name => 'AWS_REDSHIFT_LINK_CRED',
          gateway_params => JSON_OBJECT('db_type'  value 'awsredshift'));
END;
/
BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'PRIVATE_ENDPOINT_CRED',
    username => 'db_user',
    password => 'password'
  );
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
          db_link_name => 'PRIVATE_ENDPOINT_DB_LINK', 
          hostname => 'exampleHostname', 
          port => '1521',
          service_name => 'exampleServiceName',
          credential_name => 'PRIVATE_ENDPOINT_CRED',
          ssl_server_cert_dn => NULL,
          directory_name => NULL,
          private_target => TRUE);
END;
/
BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'GOOGLE_BIGQUERY_CRED',
    params => JSON_OBJECT( 'gcp_oauth2' value JSON_OBJECT(
          'client_id' value 'client_id',
          'client_secret' value 'client_secret', 
          'refresh_token' value 'refresh_token' )));

DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
          db_link_name => 'GOOGLE_BIGQUERY_LINK', 
          hostname => 'example.com', 
          port => '443',
          service_name => 'example_service_name',
          credential_name => 'GOOGLE_BIGQUERY_CRED',
          gateway_params => JSON_OBJECT(
                     'db_type' value 'google_bigquery',
                     'project' value 'project_name1' ));
END;
/

O nome da tabela especificado quando você usa SELECT com o Google BigQuery ou o Google Analytics deve estar entre aspas. Por exemplo:

SELECT * FROM "sales"@GOOGLE_BIGQUERY_LINK

Use o parâmetro rac_hostnames com um banco de dados Oracle RAC de destino em um ponto final privado.

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
     credential_name => 'DB_LINK_CRED1',
     username => 'adb_user',
     password => 'password');
      DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
     db_link_name => 'SALESLINK', 
     rac_hostnames => '["sales1-svr1.example.adb.us-ashburn-1.oraclecloud.com",
                        "sales1-svr2.example.adb.us-ashburn-1.oraclecloud.com",
                        "sales1-svr3.example.adb.us-ashburn-1.oraclecloud.com"]',
     port => '1522',
     service_name => 'example_high.adb.oraclecloud.com',
     ssl_server_cert_dn => 'CN=adb.example.oraclecloud.com,OU=Oracle BMCS FRANKFURT,O=Oracle Corporation,L=Redwood City,ST=California,C=US',
     credential_name => 'DB_LINK_CRED1',
     directory_name => 'EXAMPLE_WALLET_DIR',
     private_target => TRUE);
END;
/

Procedimento DETACH_FILE_SYSTEM

Este procedimento desanexa um sistema de arquivos do banco de dados.

O procedimento DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM desanexa um sistema de arquivos do banco de dados. Além disso, o procedimento DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM também remove as informações sobre o sistema de arquivos da view DBA_CLOUD_FILE_SYSTEMS.

Sintaxe

DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM(
    file_system_name         IN VARCHAR2
);

Parâmetros

Parâmetro Descrição

file_system_name

Especifica o nome do sistema de arquivos.

Esse parâmetro é obrigatório.

Exemplo:

BEGIN
   DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM (
    file_system_name      => 'FSS'                                       
  );                                                                          
END;                                                                          
/     

Observações sobre Uso

  • Para executar esse procedimento, você deve fazer log-in como usuário ADMIN ou ter o privilégio EXECUTE em DBMS_CLOUD_ADMIN.

  • Você deve ter o privilégio WRITE no objeto de diretório no banco de dados para desanexar um sistema de arquivos de um diretório usando o procedimento DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM.

  • O procedimento DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM só pode desanexar um Serviço de Armazenamento de Arquivos privado em bancos de dados com Pontos Finais Privados ativados.

    Consulte OCI File Storage Service e Configurar um Sistema de Desenvolvimento para Acessar o Banco de Dados para obter mais informações.

  • O procedimento DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM procura o nome do host do Sistema de Arquivos de Rede na VCN (rede virtual na nuvem) do cliente. O erro "ORA-20000: Mounting NFS fails" será retornado se o nome do host especificado no local não puder ser localizado.

Procedimento DISABLE_EXTERNAL_AUTHENTICATION

Desativa a autenticação do usuário com esquemas de autenticação externos para o banco de dados.

Sintaxe

DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;

Exceções

Exceção Erro Descrição
invalid_ext_auth ORA-20004

Consulte a mensagem de acompanhamento para obter uma explicação detalhada.

Exemplo

BEGIN 
   DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
END;
/

PL/SQL procedure successfully completed.

Procedimento DROP_DATABASE_LINK

Esse procedimento elimina um link de banco de dados.

Sintaxe

DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK(
        db_link_name      IN VARCHAR2,
        public_link       IN BOOLEAN DEFAULT);

Parâmetros

Parâmetro Descrição

db_link_name

O nome do link de banco de dados a ser eliminado.

public_link

Para executar DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK com public_link definido como TRUE, você deve ter o privilégio de sistema DROP PUBLIC DATABASE LINK.

O valor padrão desse parâmetro é FALSE.

Exemplo

BEGIN
    DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK(
        db_link_name => 'SALESLINK' );
END;
/

Observações sobre Uso

Depois que terminar de usar um link de banco de dados e executar DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK, para garantir a segurança do seu banco de dados Oracle, remova todos os arquivos de wallet armazenados. Por exemplo:

  • Remova o arquivo da wallet no Armazenamento de Objetos.

  • Use DBMS_CLOUD.DELETE_FILE para remover o arquivo de wallet do diretório data_pump_dir ou do diretório definido pelo usuário no qual o upload do arquivo de wallet foi feito.

Procedimento ENABLE_EXTERNAL_AUTHENTICATION

Permite que os usuários façam log-in no banco de dados com esquemas de autenticação externa.

Sintaxe

DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
   type         IN VARCHAR2,
   force        IN BOOLEAN DEFAULT FALSE,
   params       IN CLOB DEFAULT NULL
);

Parâmetro

Parâmetro Descrição

type

Especifica o tipo de autenticação externa. Valores válidos: ou .

  • 'OCI_IAM'
  • 'AZURE_AD'
  • 'CMU'
  • 'KERBEROS'

force

(Opcional) Substitua um esquema de autenticação externa ativado no momento. Os valores válidos são TRUE ou FALSE.

O valor default é FALSE.

params

Uma string JSON que fornece parâmetros adicionais para a autenticação externa.

Parâmetros CMU:

  • location_uri: especifica o URI de armazenamento na nuvem do bucket no qual os arquivos necessários para a CMU são armazenados.

    Se você especificar location_uri, haverá um objeto de diretório de nome fixo CMU_WALLET_DIR criado no banco de dados no caminho 'cmu_wallet' para salvar os arquivos de configuração de CMU. Nesse caso, você não precisa fornecer o parâmetro directory_name.

  • credential_name: especifica as credenciais usadas para fazer download dos arquivos de configuração de CMU do Armazenamento de Objetos para o objeto de diretório.

    O valor padrão é NULL, que permite fornecer um URL Público, Pré-autenticado ou pré-inscrito para bucket ou subpasta de Armazenamento de Objetos.

  • directory_name: especifica o nome do diretório no qual os arquivos de configuração necessários para CMU são armazenados. Se directory_name for informado, copie os arquivos de configuração de CMU dsi.ora e cwallet.sso para esse objeto de diretório.

Parâmetros KERBEROS:

  • location_uri: especifica o URI de armazenamento na nuvem do bucket no qual os arquivos necessários para o Kerberos são armazenados.

    Se você especificar location_uri, haverá um objeto de diretório de nome fixo KERBEROS_DIR criado no banco de dados para salvar os arquivos de configuração do Kerberos. Nesse caso, você não precisa fornecer o parâmetro directory_name.

  • credential_name: especifica a credencial usada para fazer download de arquivos de configuração do Kerberos do local do Armazenamento de Objetos para o objeto de diretório.

    O valor padrão é NULL, que permite fornecer um URL Público, Pré-autenticado ou pré-inscrito para bucket ou subpasta de Armazenamento de Objetos.

  • directory_name: especifica o nome do diretório no qual os arquivos necessários para o Kerberos são armazenados. Se directory_name for fornecido, copie os arquivos de configuração do Kerberos para este objeto de diretório.
  • kerberos_service_name: especifica um nome a ser usado como o nome do serviço Kerberos. Este parâmetro é opcional.

    Valor padrão: Quando não especificado, o valor kerberos_service_name é definido como o GUID da instância do Autonomous Database.

Parâmetros AZURE_AD:

  • tenant_id: ID do Tenant da Conta do Azure. O Id do Tenant especifica o registro do aplicativo Azure AD da instância do Autonomous Database.
  • application_id: ID do Aplicativo Azure criado no Azure AD para designar mapeamentos de atribuições/esquema para autenticação externa na instância do Autonomous Database.
  • application_id_uri: URI exclusivo designado ao Aplicativo Azure.

    Esse é o identificador da instância do Autonomous Database. O nome deve ser um de domínio qualificado (isso suporta acesso a recursos de tenancy cruzada).

    O tamanho máximo desse parâmetro é de 256 caracteres.

Exceções

Exceção Erro Descrição
invalid_ext_auth ORA-20004

Consulte a mensagem de acompanhamento para obter uma explicação detalhada.

Observações sobre Uso

  • Com type OCI_IAM, se o controlador de recursos não estiver ativado na instância do Autonomous Database, essa rotina o ativará com DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL.

  • Este procedimento define os parâmetros de sistema IDENTITY_PROVIDER_TYPE e IDENTITY_PROVIDER_CONFIG como obrigatórios para que os usuários acessem a instância com autenticação e autorização do Oracle Cloud Infrastructure Identity and Access Management.

Exemplos

Ativar Autenticação OCI_IAM

BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
     type => 'OCI_IAM',
     force=> TRUE );
END;
/

PL/SQL procedure successfully completed.

Ativar Autenticação CMU para o Microsoft Active Directory

Você informa um nome de diretório que contém os arquivos de configuração de CMU por meio do argumento JSON params.

BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
     type => 'CMU',
     force => TRUE,
     params => JSON_OBJECT('directory_name' value 'CMU_DIR'); // CMU_DIR directory object already exists
END;
/

PL/SQL procedure successfully completed.

Você informa um URI de localização apontando para um local de Armazenamento de Objetos que contém arquivos de configuração de CMU por meio do argumento JSON params.

BEGIN
   DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
       type     => 'CMU',
       params   => JSON_OBJECT('location_uri' value 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
                               'credential_name' value 'my_credential_name')
   );
END;
/

PL/SQL procedure successfully completed.

Ativar Autenticação do Azure AD

BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
     type => 'AZURE_AD',
     force => TRUE,
     params   => JSON_OBJECT( 'tenant_id' VALUE '....',
                              'application_id' VALUE '...',
                              'application_id_uri' VALUE '.....' ));
END;
/

PL/SQL procedure successfully completed.

Ativar Autenticação do Kerberos

Você informa um nome de diretório que contém arquivos de configuração do Kerberos por meio do argumento JSON params.

BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
     type => 'KERBEROS',
     force => TRUE,
     params => JSON_OBJECT('directory_name' value 'KERBEROS_DIR'); // KERBEROS_DIR directory object already exists
END;
/

PL/SQL procedure successfully completed.

Você informa um URI de local que aponta para um local do serviço Object Storage que contém arquivos de configuração do Kerberos por meio do argumento JSON params:

BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
     type => 'KERBEROS',
     force => TRUE,
     params => JSON_OBJECT('location_uri' value 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
                           'credential_name' value 'my_credential_name');
END;
/

Você informa um nome de serviço com o kerberos_service_name no argumento JSON params:

BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
     type => 'KERBEROS',
     force => TRUE,
     params => JSON_OBJECT('directory_name' value 'KERBEROS_DIR', // KERBEROS_DIR directory object already exists
                           'kerberos_service_name' value 'oracle' ));
END;
/

Depois que o Kerberos for ativado na sua instância do Autonomous Database, use a seguinte consulta para exibir o nome do serviço Kerberos:

SELECT SYS_CONTEXT('USERENV','KERBEROS_SERVICE_NAME') FROM DUAL;

DBMS_CLOUD_ADMIN Exceções

A tabela abaixo descreve exceções para DBMS_CLOUD_ADMIN.

Exceção Registro Descrição
invalid_service 20,001 Um serviço inválido foi especificado.
service_not_exist 20,002 Não existe um serviço especificado.
default_service 20,003 Não é possível modificar um serviço especificado.
invalid_char_set 20,029 Pré-requisito ausente ou conjunto de caracteres (nacional) inválido.
invalid_enc_key_attr 20,030 Argumento inválido ou ausente para gerenciamento de chaves.
Already Using Oracle Managed Key 0

O banco de dados já está usando uma chave gerenciada pela Oracle. Você está tentando chamar o procedimento enquanto já está usando uma chave gerenciada pela Oracle.

Argument Provided for the procedure ORA-0000

Um argumento é fornecido para o procedimento. Mensagem de erro esperada: Nenhum argumento é necessário para este procedimento.