在Oracle中,当我运行时:
GRANT SELECT on MYSCHEMA.ORDERS to APP_USER;
我可以在Oracle中运行哪些查询来检查此授权是否存在?我想验证在我们的开发,QA和生产数据库中正确创建了此授权。
答案 0 :(得分:2)
您可以从all_tab_privs
performance view或user_
或dba_
等值中获取,具体取决于您的情况和特权:
select *
from all_tab_privs
where table_schema = 'MYSCHEMA'
and table_name = 'ORDERS'
and grantee = 'APP_USER';
要查看有权访问的所有人,请不要使用grantee
过滤器。请注意,grantee
可能(很可能应该)是一个角色,而不是单个用户。在这种情况下,您需要查看谁具有该角色以获得全局,并且可以将角色授予角色,以便可以进行一些递归。
答案 1 :(得分:1)
执行以下操作(如果您以app_user身份登录): -
select owner from user_tab_privs where table_name='Order' and grantee='App_user' and owner='MySchema';
如果您以dba身份登录,请执行以下操作: -
select owner from dba_tab_privs where table_name='Order' and grantee='App_user' and owner='MySchema';
如果授权成功,则上述sql语句应具有非null输出。