AWS RDS - Oracle - 授予对 sys 的权限
AWS RDS - Oracle - Grant permissions on sys
我正在尝试创建角色并授予 select 对 sys.dba_objects 的权限。
这是我的 sql:
grant select on sys.dba_objects to my_role
grant select on sys.dba_objects to my_role;
在 RDS 上,我收到以下错误:
错误:ORA-01031:权限不足
我看到RDS有一个专门的存储过程来授予sys权限。我试过了:
call rdsadmin.rdsadmin_util.grant_sys_object('SYS.REGISTRY$HISTORY', 'my_role', 'select')
我得到的错误:
ORA-44003: invalid SQL name
ORA-06512: at "RDSADMIN.RDSADMIN_UTIL", line 248
ORA-44003: invalid SQL name
ORA-06512: at line 1
我不知道 AWS RDS,但 ORA-01031 听起来像是一个已知限制:通过角色授予的特权在 PL/SQL 过程中不起作用 - 您必须将它们直接授予用户。
尝试以下...首先,您需要使用 SYS 授予 rdsadmin select 和授予选项。
作为系统
使用授权选项将 DBA_objects 上的 select 授予 rdsadmin;
作为 rdsadmin
在 sys.dba_objects 上将 select 授予 my_role;
我是这样工作的:
1.删除了系统。像上面建议的前缀
2. 使用大写
示例:
call rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS', 'ASSESSMENT_ROLE', 'SELECT');
我正在尝试创建角色并授予 select 对 sys.dba_objects 的权限。 这是我的 sql:
grant select on sys.dba_objects to my_role
grant select on sys.dba_objects to my_role;
在 RDS 上,我收到以下错误: 错误:ORA-01031:权限不足
我看到RDS有一个专门的存储过程来授予sys权限。我试过了:
call rdsadmin.rdsadmin_util.grant_sys_object('SYS.REGISTRY$HISTORY', 'my_role', 'select')
我得到的错误:
ORA-44003: invalid SQL name
ORA-06512: at "RDSADMIN.RDSADMIN_UTIL", line 248
ORA-44003: invalid SQL name
ORA-06512: at line 1
我不知道 AWS RDS,但 ORA-01031 听起来像是一个已知限制:通过角色授予的特权在 PL/SQL 过程中不起作用 - 您必须将它们直接授予用户。
尝试以下...首先,您需要使用 SYS 授予 rdsadmin select 和授予选项。
作为系统 使用授权选项将 DBA_objects 上的 select 授予 rdsadmin;
作为 rdsadmin
在 sys.dba_objects 上将 select 授予 my_role;
我是这样工作的: 1.删除了系统。像上面建议的前缀 2. 使用大写
示例:
call rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS', 'ASSESSMENT_ROLE', 'SELECT');