Curso PL/SQL: Dominando Packages Flashcards
(45 cards)
O que é um Package em Oracle PL/SQL?
Um objeto de banco de dados que agrupa logicamente outros objetos como programas PL/SQL, variáveis e cursores.
Quais são os dois componentes principais de um Package?
Especificação (declaração das partes públicas) e Corpo (implementação das partes públicas e privadas).
O que a especificação de um Package define?
Os componentes públicos que podem ser acessados por aplicações externas.
O que o corpo de um Package contém?
A implementação dos cursores e programas públicos, itens privados e a parte de inicialização.
Quais são as vantagens de usar Packages?
Modularidade, facilidade no design de aplicativos, possibilidade de adicionar novas funcionalidades e melhoria do desempenho.
Como os Packages melhoram o desempenho?
Ao serem invocados, são carregados na memória, evitando I/O de disco em invocações subsequentes.
O que é a parte de inicialização no corpo de um Package?
Uma seção onde variáveis são inicializadas, configurações são feitas e o tratamento de erros é definido.
Por que os Packages são chamados de “caixas pretas”?
Porque a implementação interna pode ser alterada sem afetar as aplicações que utilizam o Package, desde que a interface pública permaneça a mesma.
O que acontece quando você modifica o corpo de um Package?
O Oracle não precisa recompilar outros programas que invocam as funções do Package, desde que a especificação não seja alterada.
Qual a importância de definir itens privados em um Package?
Permite encapsular a lógica interna, escondendo detalhes de implementação das aplicações externas e facilitando a manutenção e evolução do código.
Quais itens públicos necessitam serem registrados no corpo do pacote?
a)Procedures e funções.
b)Procedures, funções e exceções.
c)Procedures, funções e constantes.
a)Procedures e funções.
Referente ao cabeçalho e ao corpo do pacote, selecione a alternativa correta:
a)Quando atualizamos um dado no corpo, precisamos refazer a declaração do cabeçalho.
b)Depois de criado, não podemos alterar o corpo e o cabeçalho do pacote.
c)Quando atualizamos um dado no corpo, não precisamos refazer a declaração do cabeçalho.
c)Quando atualizamos um dado no corpo, não precisamos refazer a declaração do cabeçalho.
Temos um usuário administrador e queremos dar privilégios de execução do objeto ATUALIZAR_CLI_SEG_MERCADO para o usuáro user_app. Qual comando deve ser feito?
GRANT EXECUTE ON ATUALIZAR_CLI_SEG_MERCADO TO user_app;
O que acontece se o usuario: user_app tentar inserir dados diretamente na tabela “CLIENTE” sem permissão?
Ocorre um erro ORA-00942: a tabela ou view não existe.
Temos o usuário user_app e queremos dar permissão para esse usuário consultar os dados da tabela CLIENTE. Como fazer isso?
GRANT SELECT ON CLIENTE TO user_app;
Estamos no usuário user_app e tentando fazer um select de uma tabela criada pelo usuário user_adm, o que pode ser esse erro?
Falta de permissão para consulta dos dados da tabela CLIENTE
Verdadeiro ou Falso:
O usuário da aplicação que executa a procedure não precisa ter os privilégios de acesso aos objetos (tabelas, views, outras procedures ou funções) referenciados pelo código.
Verdadeiro:
Essa é uma das grandes vantagens de trabalhar com procedures, pois os usuários somente conseguem acessar os objetos referenciados pela procedure ou função durante a sua execução, e sob o controle do que foi codificado.
Verdadeiro ou Falso:
Os usuários que podem conceder o privilégio de EXECUTE sobre uma procedure ou função são o dono do código e qualquer outro usuário que tenha o privilégio de sistema EXECUTE ANY PROCEDURE.
Verdadeiro:
Somente o dono do código, ou os usuários que tenham o privilégio de sistema EXECUTE ANY PROCEDURE, podem conceder privilégios de EXECUTE sobre a procedure ou função. Apesar do privilégio se chamar EXECUTE ANY PROCEDURE, vale tanto para procedure quanto para função.
Verdadeiro ou Falso:
O usuário da aplicação que executa a procedure também tem que ter os privilégios de acesso aos objetos (tabelas, views, outras procedures ou funções) referenciados pelo código.
Falso:
O usuário da aplicação somente necessita do privilégio de EXECUTE sobre a procedure ou função. Essa é uma das grandes vantagens de trabalhar com procedures, pois os usuários somente conseguem acessar os objetos referenciados pela procedure ou função durante a sua execução, e sob o controle do que foi codificado.
O que é um sinônimo no Oracle PL/SQL?
É um “apelido” ou nome alternativo para um objeto (tabela, procedure, etc.) que permite acessá-lo sem precisar especificar o nome do dono.
Quem pode criar um sinônimo a uma procedure ou tabela?
O dono do objeto é quem cria o sinônimo.
Qual é o comando utilizado para criar um sinônimo público no Oracle PL/SQL?
CREATE PUBLIC SYNONYM nome_do_sinonimo FOR nome_do_dono.nome_do_objeto;
O que significa o termo “PUBLIC” ao criar um sinônimo?
Indica que usuários externos ao seu ambiente podem acessar o sinônimo, desde que tenham as permissões necessárias.
Qual a vantagem de usar sinônimos em um ambiente com múltiplos donos de objetos?
Simplifica o acesso aos objetos, pois não é necessário lembrar o nome do dono, tornando o código mais limpo e fácil de entender.