Eu gostaria de conceder direito de execução no dbms_lock
pacote para um usuário PDB local .
Eu criei um novo PDB com um usuário administrativo local. Estou assumindo que posso usar esse usuário local para todas as tarefas de gerenciamento no PDB. Mas quando tento conceder a execução diretamente dbms_lock
a outro usuário local, recebo ORA-01031: insufficient privileges
.
Estou usando a VM de desenvolvimento de aplicativos de banco de dados Oracle 12c .
As etapas para reproduzir o problema:
Crie um novo PDB como usuário CDB SYS
Criando um PDB usando a semente
create pluggable database test1
admin user test1admin identified by test1admin
roles = (DBA)
file_name_convert = ('/pdbseed/', '/test1/')
;
alter pluggable database test1 open;
Efetue login no PDB como test1admin e crie um novo usuário local não administrativo
create user test1 identified by test1;
grant connect to test1;
grant execute on dbms_lock to test1;
Error starting at line : 3 in command -
grant execute on dbms_lock to test1
Error report -
SQL Error: ORA-01031: insufficient privileges
01031. 00000 - "insufficient privileges"
*Cause: An attempt was made to perform a database operation without
the necessary privileges.
*Action: Ask your database administrator or designated security
administrator to grant you the necessary privileges
Eu usei test1admin
com sucesso para conceder vários outros privilégios aos usuários locais. Também verifiquei test1admin
que o usuário tem acesso ao dbms_lock
package. Mas parece que dbms_lock
-package (e btw dbms_crypto
também) é diferente.
Por padrão, ninguém recebe o
EXECUTE
privilégio onDBMS_LOCK
with grant option . Mesmo oDBA
papel não tem a opção de concessão.test1admin
tem acesso aDBMS_LOCK
, mastest1admin
não está autorizado a conceder privilégiosDBMS_LOCK
a usuários adicionais. Você precisa se conectarSYS
para conceder privilégiosDBMS_LOCK
a usuários adicionais.Conecte-se à raiz do CDB como
SYS
e alterne para seu banco de dados conectável:Ou conecte-se diretamente ao PDB:
E emitir a concessão:
Se você deseja
test1admin
conceder privilégios aDBMS_LOCK
outras pessoas, comoSYS
, emita o seguinte: