我需要你的认真帮助! 我需要为我的一个用户运行sys对象的多个grant执行查询。
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:at" RDSADMIN.RDSADMIN_UTIL",第234行ORA-20900:
您无权授予SYS对象:DBMS_SYSTEM ORA-06512:第2行
任何人都有线索如何解决这个问题?请帮忙!
答案 0 :(得分:2)
假设您已正确运行该过程,并且您已在呼叫中包含execute
权限。这个错误
ORA-20900: You do not have permission to grant: to SYS object: DBMS_SYSTEM
表示您没有足够的权限授予DBMS_SYSTEM权限。你可能认为你有这种特权,但你不是。
两种可能的解释:
"亚马逊RDS服务有很多限制......这项服务令人非常失望。 "
IaaS和PaaS之间的区别。 Amazon RDS产品是托管数据库即服务。因此,锁定SYS等是非常合理的.SYS用于安装,配置和修补数据库,这是亚马逊承担的任务。 (许多地方使用SYS来执行常规DBA任务:他们不应该这样做。)如果您想为自己安装,配置和修补,那么您需要一种不同风格的云服务。