Questão nº 64
Questão de Tecnologia da Informação · FGV TJ-AP 2024 (nº 64)
No contexto de administração de conexões no Oracle, Database Link é um objeto do esquema que permite que usuários acessem objetos em bancos de dados diferentes. Observe o seguinte script:
```
---conexão no banco de dados staging
CONNECT staging@staging
CREATE PUBLIC DATABASE LINK "PRD_PROCESSO"
CONNECT TO staging
IDENTIFIED BY <PWD>
USING 'PRD_PROCESSO';
SELECT nome
FROM processo.tbl_usuario@prd_processo
WHERE cpf = 99988877766;
```
Após a execução do script acima, a instrução SELECT:
- Aretornará o nome do usuário com o CPF 99988877766 da tabela “tbl_usuario” do banco de dados “prd_processo”; (alternativa correta)
- Bretornará o nome do usuário com o CPF 99988877766 da tabela “tbl_usuario” do banco de dados “prd_processo”, se o usuário “processo” existir no banco de dados “staging”;
- Cretornará o nome do usuário com o CPF 99988877766 da tabela “tbl_usuario” do banco de dados “prd_processo”, se existir sinônimo público para a tabela “tbl_usuario” no banco de dados “prd_processo”;
- Dnão retornará o nome do usuário com o CPF 99988877766 da tabela “tbl_usuario” do banco de dados “prd_processo”, porque o Database Link deve ser criado no banco de dados remoto especificado em USING 'PRD_PROCESSO';
- Enão retornará o nome do usuário com o CPF 99988877766 da tabela “tbl_usuario” do banco de dados “prd_processo”, porque a instrução deve ser executada com o usuário “staging” na cláusula FROM staging.tbl_usuario@prd_processo.
Resposta comentada
Gabarito Alternativa A
Um Database Link no Oracle é uma conexão pré-configurada que permite a um banco de dados (o "local") acessar dados e objetos em outro banco de dados (o "remoto") como se fossem locais, usando um nome simples para referenciar o banco de dados remoto.
- (A) Correta: A instrução
SELECTutiliza o Database LinkPRD_PROCESSOpara acessar a tabelatbl_usuariono esquemaprocessodo banco de dados remoto. Assumindo que o link foi criado corretamente e as permissões necessárias existem no banco de dados remoto, a consulta retornará o nome do usuário conforme especificado. - (B) Incorreta: O usuário "processo" (dono do esquema
processo) precisa existir no banco de dados remoto (PRD_PROCESSO), não no banco de dados local (staging). A cláusulaCONNECT TO stagingdefine o usuário que será usado para autenticar no banco de dados remoto. - (C) Incorreta: Um sinônimo público não é necessário quando a tabela é referenciada com o nome do esquema (
processo.tbl_usuario). A qualificação explícita do esquema já indica a localização da tabela. - (D) Incorreta: O Database Link é sempre criado no banco de dados local (neste caso,
staging) que deseja acessar o banco de dados remoto. A cláusulaUSING 'PRD_PROCESSO'apenas especifica o nome do serviço ou alias TNS do banco de dados remoto. - (E) Incorreta: A cláusula
FROM processo.tbl_usuario@prd_processoestá correta.processoé o nome do esquema que possui a tabelatbl_usuariono banco de dados remoto. O usuáriostagingé quem cria o link e quem se conecta ao banco de dados remoto através do link, mas a tabela ainda pertence ao esquemaprocessono remoto.
Fonte: FGV TJ-AP 2024 Analista Judiciário - TI - Banco de Dados (Caderno Tipo 1). Reproduzida para fins de estudo.