【发布时间】:2017-03-29 13:20:12
【问题描述】:
我在这里需要您的认真帮助! 我需要对我的一位用户运行 sys 对象的多个授权执行查询。
grant execute on SYS.dbms_system to $(User);
grant execute on SYS.dbms_flashback to $(User);
但是,据我所知,为了给 Oracle RDS 的 sys 对象授予权限,我们需要使用过程rdsadmin.rdsadmin_util.grant_sys_object 来实现。
我构造我的新查询,如下所示:
begin
rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SYSTEM', '$(User)');
end;
但是,我遇到了一个错误,
SQL 错误:ORA-20199:rdsadmin_util.grant_sys_object 中的错误。
ORA-20900:您无权授予:授予 SYS 对象:DBMS_SYSTEM ORA-06512:在“RDSADMIN.RDSADMIN_UTIL”,第 234 行 ORA-20900:
您无权授予:授予 SYS 对象:DBMS_SYSTEM ORA-06512:第 2 行
有人知道我该如何解决这个问题吗?请帮忙!
【问题讨论】:
-
你是在
SYS用户下运行那个程序吗? -
没有。原因是因为 amazon rds 锁定了 SYS 用户。但是,我确实有权限执行普通 DBA 任务的用户,请参考docs.aws.amazon.com/AmazonRDS/latest/UserGuide/…
-
根据文档,您的声明应如下所示-
begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => 'DBMS_SYSTEM', p_grantee => 'USER', p_privilege => 'EXECUTE' ); end;。我认为您错过了想要授予用户的特权。 -
它实际上和我的查询一样。我确实再次运行了您的查询,但仍然出现权限不足错误。请帮忙!
标签: oracle amazon-web-services amazon-ec2 oracle11g amazon-rds