我想将dbms_lock
包的执行权授予本地 PDB 用户。
我用本地管理用户创建了新的 PDB。我假设我可以将该本地用户用于 PDB 中的所有管理任务。但是,当我尝试将执行权授予dbms_lock
另一个本地用户时,我得到了ORA-01031: insufficient privileges
.
我正在使用 Oracle 12c数据库应用程序开发 VM。
重现问题的步骤:
以 CDB SYS 用户身份创建新 PDB
create pluggable database test1
admin user test1admin identified by test1admin
roles = (DBA)
file_name_convert = ('/pdbseed/', '/test1/')
;
alter pluggable database test1 open;
以 test1admin 身份登录 PDB 并创建新的本地非管理用户
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
我已经test1admin
成功地向 elocal 用户授予了其他几个权限。我还验证test1admin
了用户可以访问dbms_lock
包。但似乎dbms_lock
-package (以及顺便说一句dbms_crypto
)是不同的。
默认情况下,没有人被授予使用 grant option
EXECUTE
的权限。甚至角色也没有授予选项。有权访问,但无权向其他用户授予权限。您需要连接以向其他用户授予权限。DBMS_LOCK
DBA
test1admin
DBMS_LOCK
test1admin
DBMS_LOCK
SYS
DBMS_LOCK
以身份连接到 CDB 根目录
SYS
并切换到您的可插拔数据库:或者直接连接到 PDB:
并颁发赠款:
如果您希望
test1admin
能够向DBMS_LOCK
其他人授予权限,那么 asSYS
,发出以下命令: