Pacote DBMS_CLOUD_LINK
O pacote DBMS_CLOUD_LINK permite que um usuário registre uma tabela ou uma view como um conjunto de dados para acesso somente leitura com Links do Cloud.
DBMS_CLOUD_LINK Visão Geral
Descreve o uso do pacote DBMS_CLOUD_LINK.
O pacote DBMS_CLOUD_LINK fornece o procedimento REGISTER que permite registrar uma tabela ou uma view como um conjunto de dados para uso com o Cloud Links. Para poder registrar um conjunto de dados, o usuário ADMIN deve conceder a um usuário permissão para registrar um conjunto de dados usando o procedimento DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER. Depois que o ADMIN executar GRANT_REGISTER, um usuário poderá registrar uma tabela ou uma view de sua propriedade como um conjunto de dados registrado (ou registrar um objeto em outro esquema se o usuário tiver o privilégio READ WITH GRANT OPTION no objeto). Os conjuntos de dados registrados fornecem acesso remoto ao objeto registrado com Links da Nuvem, sujeito ao escopo especificado com o procedimento REGISTER.
Para executar DBMS_CLOUD_LINK.REGISTER, DBMS_CLOUD_LINK.UPDATE_REGISTRATION ou DBMS_CLOUD_LINK.UNREGISTER, você precisa ter privilégio de execução no pacote DBMS_CLOUD_LINK, além de ter executado anteriormente DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER. Por padrão, somente o usuário ADMIN e os esquemas com a atribuição PDB_DBA têm privilégio de execução em DBMS_CLOUD_LINK.
Resumo dos Subprogramas DBMS_CLOUD_LINK
Mostra uma tabela com um resumo dos subprogramas incluídos no pacote DBMS_CLOUD_LINK.
| Subprograma | Descrição |
|---|---|
| Função DESCRIBE | Esta função recupera a descrição de um conjunto De Dados. A descrição é fornecida quando um conjunto de dados é registrado no DBMS_CLOUD_LINK.REGISTER. |
| Procedimento FIND | Recupera o namespace, o nome e a descrição dos conjuntos de dados que correspondem à string de pesquisa. Os conjuntos de dados correspondentes só serão mostrados se estiverem acessíveis ao usuário, com base em restrições de acesso. |
| Função GET_DATABASE_ID | Retorna um identificador exclusivo para a instância do Autonomous AI Database. As chamadas repetidas para DBMS_CLOUD_LINK.GET_DATABASE_ID na mesma instância sempre retornam o mesmo valor. |
| Procedimento GRANT_AUTHORIZATION | Concede autorização a um banco de dados especificado para acessar o conjunto de dados especificado. |
| Procedimento REGISTER | Registra uma tabela ou view como conjunto de dados. |
| Procedimento REVOKE_AUTHORIZATION | Revoga a autorização de um banco de dados especificado para acessar o conjunto de dados especificado. |
| Procedimento UNREGISTER | Remove um conjunto de dados registrado. |
| Procedimento UPDATE_REGISTRATION | Atualiza atributos de um conjunto de dados que foi registrado usando DBMS_CLOUD_LINK.REGISTER. |
Função DESCRIBE
Esta função recupera a descrição de um conjunto De Dados. A descrição é fornecida quando um conjunto de dados é registrado no DBMS_CLOUD_LINK.REGISTER.
Sintaxe
DBMS_CLOUD_LINK.DESCRIBE(
namespace IN VARCHAR2,
name IN VARCHAR2
) return CLOB;Parâmetros
| Parâmetro | Descrição |
|---|---|
namespace |
Especifica o namespace do conjunto de dados registrado. O valor fornecido para esse parâmetro é, por padrão, tratado como sem distinção entre maiúsculas e minúsculas e convertido em letras maiúsculas. Por exemplo, testnamespace é convertido em TESTNAMESPACE. Para especificar um valor com distinção entre maiúsculas e minúsculas, coloque-o entre aspas duplas ("); por exemplo, "testnamespace" é tratado como testnamespace e "TestNamespace" é tratado como TestNamespace (letra não é alterada). |
name |
Especifica o nome de um conjunto de dados registrado. O valor fornecido para esse parâmetro é, por padrão, tratado como sem distinção entre maiúsculas e minúsculas e convertido em letras maiúsculas. Por exemplo, testdataset é convertido em TESTDATASET. Para especificar um valor com distinção entre maiúsculas e minúsculas, coloque-o entre aspas duplas ("); por exemplo, "testdataset" é tratado como testdataset e "TestDataset" é tratado como TestDataset (letra não é alterada). |
Observação do Uso
Você pode usar esta função sujeita às restrições de acesso impostas no momento do registro com DBMS_CLOUD_LINK.REGISTER. Se um conjunto de dados não estiver acessível a um banco de dados, sua descrição não será recuperada.
Procedimento FIND
Este procedimento recupera o namespace, o nome e a descrição dos conjuntos de dados que correspondem à string de pesquisa. Os conjuntos de dados correspondentes só serão mostrados se estiverem acessíveis ao usuário, com base em restrições de acesso.
Sintaxe
DBMS_CLOUD_LINK.FIND(
search_string IN VARCHAR2,
search_result OUT CLOB
);Parâmetros
| Parâmetro | Descrição |
|---|---|
search_string |
Especifica a string de pesquisa. A string de pesquisa não diferencia maiúsculas de minúsculas. |
search_result |
Um documento JSON que inclui os valores de namespace, nome e descrição do conjunto de dados. |
Observação do Uso
A string de pesquisa não faz distinção entre maiúsculas e minúsculas e o pacote utiliza a pesquisa de texto livre usando o Oracle Text.
Função GET_DATABASE_ID
A função retorna um identificador exclusivo para a instância do Autonomous AI Database. As chamadas repetidas para DBMS_CLOUD_LINK.GET_DATABASE_ID na mesma instância sempre retornam o mesmo valor.
Você pode chamar essa função em um banco de dados que está acessando um conjunto de dados registrado remotamente para obter o ID do banco de dados. Isso permite que você forneça o iD do banco de dados para que um proprietário do conjunto de dados possa aproveitar um controle de acesso a dados mais detalhado, por exemplo, com o VPD, com base em IDs de banco de dados especificados de sites remotos.
Um ID de banco de dados identifica cada banco de dados remoto que acessa um conjunto de dados registrado, para rastrear e auditar o acesso nas Views V$CLOUD_LINK_ACCESS_STATS e GV$CLOUD_LINK_ACCESS_STATS no banco de dados que possui um conjunto de dados registrado.
Sintaxe
DBMS_CLOUD_LINK.GET_DATABASE_ID()
RETURN VARCHAR2;Observações de Uso
Os links de nuvem usam o identificador exclusivo que o DBMS_CLOUD_LINK.GET_DATABASE_ID retorna para identificar bancos de dados individuais que estão acessando um conjunto de dados remotamente. O banco de dados proprietário do conjunto de dados registrado rastreia e audita o ID do banco de dados como um registro da origem para acesso ao conjunto de dados nas Views V$CLOUD_LINK_ACCESS_STATS e GV$CLOUD_LINK_ACCESS_STATS.
O identificador DBMS_CLOUD_LINK.GET_DATABASE_ID está disponível como um valor SYS_CONTEXT para que você possa obter programaticamente essas informações sobre uma sessão remota de conexão usando SYS_CONTEXT, para restringir e controlar ainda mais quais dados específicos podem ser acessados remotamente por instâncias individuais do Autonomous AI Database com VPDs (Virtual Private Databases).
Valores de Retorno
Um identificador exclusivo para a instância do Autonomous AI Database do VARCHAR2.
GRANT_AUTHORIZATION Procedimento
Este procedimento concede autorização a um banco de dados especificado para acessar o conjunto de dados especificado.
Sintaxe
DBMS_CLOUD_LINK.GRANT_AUTHORIZATION(
database_id IN VARCHAR2,
namespace IN VARCHAR2 DEFAULT,
name IN VARCHAR2
);Parâmetros
| Parâmetro | Descrição |
|---|---|
database_id |
Especifica o ID do banco de dados de uma instância do Autonomous AI Database. Use DBMS_CLOUD_LINK.GET_DATABASE_ID para obter o ID do banco de dados. |
namespace |
Especifica o namespace do conjunto de dados para conceder autorização de acesso para o database_id especificado. O valor fornecido para esse parâmetro é, por padrão, tratado como sem distinção entre maiúsculas e minúsculas e convertido em letras maiúsculas. Por exemplo, testnamespace é convertido em TESTNAMESPACE. Para especificar um valor com distinção entre maiúsculas e minúsculas, coloque-o entre aspas duplas ("); por exemplo, "testnamespace" é tratado como testnamespace e "TestNamespace" é tratado como TestNamespace (letra não é alterada). |
name |
Especifica o nome do conjunto de dados para conceder autorização de acesso para o database_id especificado. O valor fornecido para esse parâmetro é, por padrão, tratado como sem distinção entre maiúsculas e minúsculas e convertido em letras maiúsculas. Por exemplo, testdataset é convertido em TESTDATASET. Para especificar um valor com distinção entre maiúsculas e minúsculas, coloque-o entre aspas duplas ("); por exemplo, "testdataset" é tratado como testdataset e "TestDataset" é tratado como TestDataset (letra não é alterada). |
Procedimento REGISTER
O procedimento registra uma tabela ou uma view como um conjunto de dados para permitir acesso somente leitura remota, sujeito a restrições impostas pelo parâmetro scope.
Sintaxe
DBMS_CLOUD_LINK.REGISTER(
schema_name IN VARCHAR2,
schema_object IN VARCHAR2,
namespace IN VARCHAR2,
name IN VARCHAR2,
description IN CLOB,
scope IN CLOB,
auth_required IN BOOLEAN DEFAULT,
data_set_owner IN VARCHAR2 DEFAULT,
offload_targets IN CLOB DEFAULT
);Parâmetros
| Parâmetro | Descrição |
|---|---|
schema_name |
Especifica o proprietário da tabela ou da view especificada com o parâmetro schema_object. |
schema_object |
Especifica o nome de uma tabela ou uma view. Os objetos válidos são:
Outros objetos, como views analíticas ou sinônimos, não são suportados. |
namespace |
Especifica o namespace do conjunto de dados. O valor fornecido para esse parâmetro é, por padrão, tratado como sem distinção entre maiúsculas e minúsculas e convertido em letras maiúsculas. Por exemplo, Um valor |
name |
Especifica o nome do conjunto do dados. O valor fornecido para esse parâmetro é, por padrão, tratado como sem distinção entre maiúsculas e minúsculas e convertido em letras maiúsculas. Por exemplo, testdataset é convertido em TESTDATASET. Para especificar um valor com distinção entre maiúsculas e minúsculas, coloque-o entre aspas duplas ("); por exemplo, "testdataset" é tratado como testdataset e "TestDataset" é tratado como TestDataset (letra não é alterada). |
description |
Especifica o texto para descrever os dados. |
scope |
Descreve quem tem permissão para acessar o conjunto de dados. O valor é uma lista separada por vírgulas que consiste em um ou mais dos seguintes itens:
Os valores de escopo, |
auth_required |
Especifica que é necessária uma autorização adicional para que os bancos de dados leiam no conjunto de dados. Os casos a seguir são possíveis:
|
data_set_owner |
Especifica o proprietário do conjunto de dados. Indica a quem o conjunto de dados pertence ou quem é responsável por atualizar e manter o conjunto de dados. Por exemplo, você pode definir o data_set_owner como o endereço de e-mail da pessoa que registrou o conjunto de dados. |
offload_targets |
Especifica um ou mais OCIDs do Autonomous AI Database de clones atualizáveis nos quais o acesso aos conjuntos de dados é descarregado, no Autonomous AI Database no qual o conjunto de dados é registrado. O valor
Por exemplo, o seguinte mostra uma amostra JSON com três pares de valores Quando um consumidor de conjunto de dados solicita acesso a um conjunto de dados que você registra no Por exemplo, o seguinte mostra uma amostra JSON com um par de valores O Consulte Usar Clones Atualizáveis com o Autonomous AI Database para obter informações sobre como usar clones atualizáveis. |
Observações de Uso
-
Depois de registrar um objeto, os usuários talvez precisem aguardar até dez (10) minutos para acessar o objeto com o Cloud Links.
-
Use o procedimento
DBMS_CLOUD_LINK.UPDATE_REGISTRATIONpara alterar os atributos de um conjunto de dados existente.O tempo de espera para a conclusão da atualização pode ser de até 10 minutos para que uma alteração de registro seja propagada e acessível por meio dos Links da Nuvem. Esse atraso pode afetar a precisão dos dados nas exibições
DBA_CLOUD_LINK_REGISTRATIONSeDBA_CLOUD_LINK_ACCESS. -
Você pode registrar uma tabela ou view que reside no esquema de outro usuário quando tiver privilégios
READ WITH GRANT OPTIONpara a tabela ou view. -
O escopo definido quando você registra um conjunto de dados só é respeitado quando ele corresponde ou é mais restritivo do que o conjunto de valores com
DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER. Por exemplo, suponha que o ADMIN tenha concedido o escopo'MY$TENANCY'comGRANT_REGISTERe que o usuário especifique'MY$REGION'quando registrar um conjunto de dados comDBMS_CLOUD_LINK.REGISTER. Nesse caso, eles verão um erro como o seguinte:
ORA-20001: Share privileges are not enabled for current user or it is enabled but not for scope MY$REGION-
Certas verificações de validade hierárquica para registro não podem ocorrer no momento do registro. Registros inválidos não serão visíveis, detectáveis ou até mesmo acessíveis a ninguém.
-
Para usar o
DBMS_CLOUD_LINK.REGISTER, você deve ter privilégio de execução no pacoteDBMS_CLOUD_LINK, além do privilégio de registro atribuído aDBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER. Somente o usuário ADMIN e os esquemas comPDB_DBAtêm esse privilégio por padrão. -
Quando você registra um conjunto de dados em um clone atualizável em uma região remota, a chamada de
DBMS_CLOUD_LINK.REGISTERno clone da região remota deve usar os mesmos parâmetros com os mesmos valores do banco de dados de origem, com exceção do parâmetrooffload_targets.Por exemplo, quando você executar
DBMS_CLOUD_LINK.REGISTERcom o escopo definido comoMY$COMPARTMENTna instância do Autonomous AI Database de origem, execute o procedimento novamente no clone atualizável entre regiões com o mesmo valor de parâmetro de escopo (MY$COMPARTMENT). -
Se você especificar o parâmetro
offload_targetscomDBMS_CLOUD_LINK.REGISTERna origem, omita esse parâmetro ao registrar o conjunto de dados em um clone atualizável entre regiões.
REVOKE_AUTHORIZATION Procedimento
Este procedimento revoga a autorização de um banco de dados especificado para acessar o conjunto de dados especificado.
Sintaxe
DBMS_CLOUD_LINK.REVOKE_AUTHORIZATION(
database_id IN VARCHAR2,
namespace IN VARCHAR2 DEFAULT,
name IN VARCHAR2
);Parâmetros
| Parâmetro | Descrição |
|---|---|
database_id |
Especifica o ID do banco de dados de uma instância do Autonomous AI Database. Use DBMS_CLOUD_LINK.GET_DATABASE_ID para obter o ID do banco de dados. |
namespace |
Especifica o namespace do conjunto de dados para revogar a autorização de acesso para o database_id especificado. O valor fornecido para esse parâmetro é, por padrão, tratado como sem distinção entre maiúsculas e minúsculas e convertido em letras maiúsculas. Por exemplo, testnamespace é convertido em TESTNAMESPACE. Para especificar um valor com distinção entre maiúsculas e minúsculas, coloque-o entre aspas duplas ("); por exemplo, "testnamespace" é tratado como testnamespace e "TestNamespace" é tratado como TestNamespace (letra não é alterada). |
name |
Especifica o nome do conjunto de dados para revogar a autorização de acesso para o database_id especificado. O valor fornecido para esse parâmetro é, por padrão, tratado como sem distinção entre maiúsculas e minúsculas e convertido em letras maiúsculas. Por exemplo, testdataset é convertido em TESTDATASET. Para especificar um valor com distinção entre maiúsculas e minúsculas, coloque-o entre aspas duplas ("); por exemplo, "testdataset" é tratado como testdataset e "TestDataset" é tratado como TestDataset (letra não é alterada). |
Procedimento UNREGISTER
O procedimento permite que um usuário que registrou anteriormente uma tabela ou uma view com o procedimento REGISTER cancele o registro da tabela ou view para que ela não esteja mais disponível para acesso remoto.
Sintaxe
DBMS_CLOUD_LINK.UNREGISTER(
namespace IN VARCHAR2,
name IN VARCHAR2
);Parâmetros
| Parâmetro | Descrição |
|---|---|
namespace |
Especifica um namespace. O valor fornecido para esse parâmetro é, por padrão, tratado como sem distinção entre maiúsculas e minúsculas e convertido em letras maiúsculas. Por exemplo, testnamespace é convertido em TESTNAMESPACE. Para especificar um valor com distinção entre maiúsculas e minúsculas, coloque-o entre aspas duplas ("); por exemplo, "testnamespace" é tratado como testnamespace e "TestNamespace" é tratado como TestNamespace (letra não é alterada). |
name |
Especifica o nome do conjunto do dados. O valor fornecido para esse parâmetro é, por padrão, tratado como sem distinção entre maiúsculas e minúsculas e convertido em letras maiúsculas. Por exemplo, testdataset é convertido em TESTDATASET. Para especificar um valor com distinção entre maiúsculas e minúsculas, coloque-o entre aspas duplas ("); por exemplo, "testdataset" é tratado como testdataset e "TestDataset" é tratado como TestDataset (letra não é alterada). |
Observação do Uso
O DBMS_CLOUD_LINK.UNREGISTER também pode levar até dez (10) minutos para ser totalmente propagado, após o qual os dados podem ser acessados remotamente por mais tempo.
UPDATE_REGISTRATION Procedimento
O procedimento atualiza um ou mais atributos para um conjunto de dados que foi registrado usando DBMS_CLOUD_LINK.REGISTER.
Sintaxe
DBMS_CLOUD_LINK.UPDATE_REGISTRATION(
namespace IN VARCHAR2,
name IN VARCHAR2,
description IN CLOB DEFAULT,
scope IN CLOB DEFAULT,
auth_required IN BOOLEAN DEFAULT,
data_set_owner IN VARCHAR2 DEFAULT,
offload_targets IN CLOB DEFAULT
);Parâmetros
| Parâmetro | Descrição |
|---|---|
namespace |
Especifica o namespace do conjunto de dados a ser atualizado. O valor fornecido para esse parâmetro é, por padrão, tratado como sem distinção entre maiúsculas e minúsculas e convertido em letras maiúsculas. Por exemplo, testnamespace é convertido em TESTNAMESPACE. Para especificar um valor com distinção entre maiúsculas e minúsculas, coloque-o entre aspas duplas ("); por exemplo, "testnamespace" é tratado como testnamespace e "TestNamespace" é tratado como TestNamespace (letra não é alterada). |
name |
Especifica o nome do conjunto de dados a ser atualizado. O valor fornecido para esse parâmetro é, por padrão, tratado como sem distinção entre maiúsculas e minúsculas e convertido em letras maiúsculas. Por exemplo, testdataset é convertido em TESTDATASET. Para especificar um valor com distinção entre maiúsculas e minúsculas, coloque-o entre aspas duplas ("); por exemplo, "testdataset" é tratado como testdataset e "TestDataset" é tratado como TestDataset (letra não é alterada). |
description |
Especifica o texto atualizado para descrever os dados. Se Por padrão, esse atributo não é atualizado. |
scope |
Atualize o escopo com o valor especificado. O escopo descreve quem tem permissão para acessar o conjunto de dados. O valor é uma lista separada por vírgulas que consiste em um ou mais dos seguintes itens:
Os valores de escopo, Se Por padrão, este atributo não é atualizado. |
auth_required |
Especifica que é necessária uma autorização adicional para que os bancos de dados leiam no conjunto de dados. Os casos a seguir são possíveis:
Se Por padrão, esse atributo não é atualizado. |
data_set_owner |
Especifica o proprietário do conjunto de dados. Indica a quem o conjunto de dados pertence ou quem é responsável por atualizar e manter o conjunto de dados. Por exemplo, você pode definir o Se Por padrão, esse atributo não é atualizado. |
offload_targets |
Especifica um ou mais OCIDs do Autonomous AI Database de clones atualizáveis nos quais o acesso aos conjuntos de dados é descarregado, no Autonomous AI Database no qual o conjunto de dados é registrado. O valor
Por exemplo, o seguinte mostra uma amostra JSON com três pares de valores Quando um consumidor de conjunto de dados solicita acesso a um conjunto de dados que você registra no Por exemplo, o seguinte mostra uma amostra JSON com um par de valores O Consulte Usar Clones Atualizáveis com o Autonomous AI Database para obter informações sobre como usar clones atualizáveis. Se Por padrão, este atributo não é atualizado. |
Observações de Uso
-
Os atributos
schema_nameeschema_objectde um conjunto de dados não podem ser atualizados. -
Depois que você atualizar o registro de um objeto, talvez os usuários precisem aguardar até dez (10) minutos para acessar o objeto usando os atributos atualizados com os Links da Nuvem.
-
Você pode atualizar o registro de uma tabela ou view que reside no esquema de outro usuário quando tiver privilégios
READ WITH GRANT OPTIONpara a tabela ou view. -
O escopo definido quando você atualiza o registro de um conjunto de dados só é respeitado quando ele corresponde ou é mais restritivo do que o conjunto de valores com
DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER. Por exemplo, suponha que o ADMIN tenha concedido o escopo'MY$TENANCY'comGRANT_REGISTERe que o usuário especifique'MY$REGION'quando atualizar o registro do conjunto de dados comDBMS_CLOUD_LINK.UPDATE_REGISTRATION. Nesse caso, eles verão um erro como o seguinte:
ORA-20001: Share privileges are not enabled for current user or it is enabled but not for scope MY$REGION-
Certas verificações de validade hierárquica de um registro atualizado não podem ocorrer quando o registro é atualizado. Registros inválidos não serão visíveis, detectáveis ou até mesmo acessíveis a ninguém.
-
O usuário que registrou um conjunto de dados pode atualizar seus atributos com o
DBMS_CLOUD_LINK.UPDATE_REGISTRATION. Além disso, você deve ter o privilégio de execução no pacoteDBMS_CLOUD_LINKe o privilégio de registro atribuído aDBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER. Somente o usuário ADMIN e os esquemas comPDB_DBAtêm esse privilégio por padrão. -
Quando você atualiza o registro de um conjunto de dados em um clone atualizável em uma região remota, a chamada de
DBMS_CLOUD_LINK.UPDATE_REGISTRATIONno clone da região remota deve usar os mesmos parâmetros com os mesmos valores do banco de dados de origem, com exceção do parâmetrooffload_targets.Por exemplo, quando você executar
DBMS_CLOUD_LINK.UPDATE_REGISTRATIONcom o escopo definido comoMY$COMPARTMENTna instância do Autonomous AI Database de origem, execute o procedimento novamente no clone atualizável entre regiões com o mesmo valor de parâmetro de escopo (MY$COMPARTMENT). -
Se você especificar o parâmetro
offload_targetscomDBMS_CLOUD_LINK.REGISTERna origem, omita esse parâmetro ao registrar o conjunto de dados em um clone atualizável entre regiões.