AWS RDS - Oracle - 授予sys权限

时间:2018-01-18 08:43:34

标签: sql oracle amazon-web-services amazon-rds

我正在尝试创建一个角色并在sys.dba_objects上授予select权限。 这是我的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

3 个答案:

答案 0 :(得分:1)

这就是我的工作方式: 1.删​​除了sys。如上所述的前缀 2.使用大写

示例:

call rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS', 'ASSESSMENT_ROLE', 'SELECT');

答案 1 :(得分:0)

我不知道AWS RDS,但ORA-01031听起来像是一个已知的限制:通过角色授予的权限在PL / SQL过程中不起作用 - 您必须直接向用户授予它们。

答案 2 :(得分:0)

请尝试以下操作...首先,您需要使用SYS将select选项授予rdsadmin和grant选项。

作为SYS 使用grant选项将DBA_objects上的select选择授予rdsadmin;

作为rdsadmin

将sys.dba_objects上的select赋予my_role;