如何赋予Oracle AWS RDS中SYS对象权限?



我有一个AWS RDS Oracle数据库。我想通过授予选项授予对某些sys对象的访问权限。

我运行:

exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS', 'MASTER_USER', 'SELECT', true);

但我得到错误:

ORA-06550: line 1, column 164:
PLS-00306: wrong number or types of arguments in call to 'GRANT_SYS_OBJECT'

我不喜欢最后一个参数'true'。根据这里的文档,这个参数是授予选项。

如果我不带grant选项运行命令:

exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS', 'MASTER_USER', 'SELECT');

它可以工作,但是它授予特权而不带grant选项。

有谁知道如何在AWS Oracle RDS中使用授予选项授予权限吗?

谢谢。

问题可能来自旧版本,或者因为您没有告知哪些参数与此顺序对应。

我建议按照文档运行它。为什么?因为当你不告知参数时,Oracle将按照创建包/过程/函数时定义的顺序依次运行它。

我无法访问这个RDS管理包的引用,但很可能是它导致了错误。

begin
rdsadmin.rdsadmin_util.grant_sys_object(
p_obj_name     => 'DBA_OBJECTS',
p_grantee      => 'MASTER_USER',
p_privilege    => 'SELECT',
p_grant_option => true);
end;
/

然而,由于您正在光栅with admin option,那么您必须考虑

要能够在对象上授予权限,您的帐户必须具有通过grant选项直接授予它的那些特权,或者通过使用admin选项授予的角色。在最常见的情况下,您可能想要在一个DBA视图上授予SELECT,该视图已被授予SELECT_CATALOG_ROLE角色。如果这个角色不是已经直接授予如果您的用户使用admin选项,那么您将无法传输特权。如果您拥有DBA特权,那么您可以授予该角色直接发给另一个用户

还要考虑Oracle版本中Amazon RDS中不推荐的版本

Amazon RDS Oracle

相关内容

  • 没有找到相关文章

最新更新