0

在 Oracle 中,当我运行时:

GRANT SELECT on MYSCHEMA.ORDERS to APP_USER;

我可以在 Oracle 中运行什么查询来检查此授权是否存在?我想验证在我们的开发、QA 和生产数据库中是否正确创建了此授权。

4

2 回答 2

2

您可以根据您的情况和权限从all_tab_privs性能视图或等效视图中获得它:user_dba_

select *
from all_tab_privs
where table_schema = 'MYSCHEMA'
and table_name = 'ORDERS'
and grantee = 'APP_USER';

要查看所有有权访问的人,请取消grantee筛选。请注意,尽管grantee可能(并且很可能应该是)一个角色,而不是单个用户。在这种情况下,您需要查看谁被授予了该角色以获得完整的图片,并且可以将角色授予角色,这样可以有点递归。

于 2013-08-15T17:14:09.740 回答
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 语句应该有非空输出。

于 2013-08-15T17:14:23.667 回答