Oracle中的序列权限

46

我该如何在 SQL*Plus 中检查特定序列授予的权限并为特定序列分配权限?

2个回答

86

授予权限:

grant select on schema_name.sequence_name to user_or_role_name;

检查已授予的权限

select * from all_tab_privs where TABLE_NAME = 'sequence_name'

7

在某些情况下,我发现在 all_tab_privs 中没有结果!但我确实在 dba_tab_privs 中找到了结果。我认为,这个最后一个表格更适合检查对象上是否有任何授权(在影响分析的情况下)。语句变成:

    select * from dba_tab_privs where table_name = 'sequence_name';

1
普通用户通常无法访问任何DBA_xxx视图。 - user330315
1
当然,你是正确的!但事实是我需要评估一次序列更新对Oracle表的影响。使用与DBA不同的凭据,我没有找到其他用户的授权设置。使用sys凭据,我发现了3个依赖模式,如果停留在第一个语句上(在生产环境中存在缺陷),我将错过这些模式。 - OPMendeavor
我忘了感谢beny23的答案。寻找并找到数据库管理员的观点是至关重要的 ;) - OPMendeavor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接