我如何确保已执行拨款?

时间:2013-08-15 16:57:14

标签: oracle

在Oracle中,当我运行时:

GRANT SELECT on MYSCHEMA.ORDERS to APP_USER;

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

2 个答案:

答案 0 :(得分:2)

您可以从all_tab_privs performance viewuser_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输出。