首页 > 解决方案 > 如何在 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'。根据此处的文档,此参数用于授予选项。

如果我在没有授权选项的情况下运行命令:

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

它可以工作,但它在没有授予选项的情况下授予特权。

有谁知道如何在 AWS Oracle RDS 中通过授予选项授予权限?

谢谢。

标签: oracleamazon-web-servicesamazon-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 选项授予它的权限,或者通过使用 with admin 选项授予的角色。在最常见的情况下,您可能希望在已授予 SELECT_CATALOG_ROLE 角色的 DBA 视图上授予 SELECT。如果该角色尚未使用 with admin 选项直接授予您的用户,则您无法转移权限。如果您具有 DBA 权限,则可以将角色直接授予其他用户

还要考虑 Amazon RDS for Oracle 版本中已弃用的版本

亚马逊 RDS 甲骨文


推荐阅读