在 Oracle 中,当我运行时:
GRANT SELECT on MYSCHEMA.ORDERS to APP_USER;
我可以在 Oracle 中运行什么查询来检查此授权是否存在?我想验证在我们的开发、QA 和生产数据库中是否正确创建了此授权。
在 Oracle 中,当我运行时:
GRANT SELECT on MYSCHEMA.ORDERS to APP_USER;
我可以在 Oracle 中运行什么查询来检查此授权是否存在?我想验证在我们的开发、QA 和生产数据库中是否正确创建了此授权。
您可以根据您的情况和权限从all_tab_privs
性能视图或等效视图中获得它:user_
dba_
select *
from all_tab_privs
where table_schema = 'MYSCHEMA'
and table_name = 'ORDERS'
and grantee = 'APP_USER';
要查看所有有权访问的人,请取消grantee
筛选。请注意,尽管grantee
可能(并且很可能应该是)一个角色,而不是单个用户。在这种情况下,您需要查看谁被授予了该角色以获得完整的图片,并且可以将角色授予角色,这样可以有点递归。
执行以下操作(如果您以 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 语句应该有非空输出。