oracle - 如何在 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 中通过授予选项授予权限?
谢谢。
解决方案
也许问题来自旧版本,或者因为您没有告知哪些参数与此顺序相对应。
我建议按照记录运行它。为什么 ?因为当您不通知参数时,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 版本中已弃用的版本
推荐阅读
- angular - Angular 8 Observable.interval 改变了吗?
- hla - OpenRTI 回调的问题
- chisel - 在 Chisel 中循环循环缓冲区
- node.js - 使用 Content-Transfer-Encoding 的消息编码错误:二进制
- python - 在 Python 中生成具有指定边际的 copula 相关样本
- android - java.lang.NullPointerException 当 dataBinding 启用 = true
- ios - 在 Xamarin 应用程序中获取最新的 Apple 支付交易
- java - 如何在arraylist中找到前20个最常用的词
- python - 为什么 mpmath-function "diff" 会产生错误 AttributeError: 'MPContext' object has no attribute 'difference'?
- command - 在 Notepad++ 运行命令中获取工作区路径