如何为Oracle AWS RDS中的SYS对象授予权限?

问题描述 投票:0回答:1

我有一个 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 中通过授予选项授予权限?

amazon-web-services oracle amazon-rds
1个回答
1
投票

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

我建议按照文档运行它。为什么 ?因为当您不告知参数时,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
那么你必须考虑这一点

为了能够授予对象权限,您的帐户必须具有 直接使用授予选项授予它的权限,或通过 使用管理选项授予的角色。 在最常见的情况下,您 可能想要在已被授予的 DBA 视图上授予 SELECT SELECT_CATALOG_ROLE 角色。如果该角色尚未直接授予 使用管理员选项给您的用户,那么您将无法转移 权限。 如果您有DBA权限,那么您可以授予该角色 直接发送给另一个用户

另请考虑 Amazon RDS for Oracle 版本中已弃用的版本

亚马逊 RDS Oracle

© www.soinside.com 2019 - 2024. All rights reserved.