我正在执行以下查询,以获取查询中看到的用户的授予权限:
SELECT owner, table_name, select_priv, insert_priv, delete_priv, update_priv, references_priv, alter_priv, index_priv
FROM table_privileges
WHERE grantee = 'TRAMITES_USR'
ORDER BY owner, table_name;
我在一个视图中看到,他有一个“G”权限,用于选择权限,他还对几个表有一个“A”权限,用于插入或更新权限。
G和A是什么意思
1条答案
按热度按时间fcy6dtqo1#
主文档中没有描述该视图,但在各种Gateway文档中提到了它,例如Database Gateway for Informix User's Guide,其中显示了不同数据库的不同可能值,但没有解释它们。
在19 c SQL参考中,它得到了一个顺便提及:
Oracle在以下元数据视图中提供此信息:
如果你回到8i docs(!),它会说:
此视图包含有关用户是其授权者、被授权者或所有者,或PUBLIC是其被授权者的对象的赠款信息。包含此视图是为了与Oracle版本6兼容。建议不要使用此视图。
将
table_privileges
与all_tab_privs
(fiddle)进行比较,表明'G'相当于grantable
为'YES'(仅在我的数据库中的两行中出现select_priv
),但不清楚为什么insert_priv
和update_priv
似乎总是使用'A'而不是'Y'。也许这是Oracle 6中的区别,现在没有真实的的意义。如果你真的很想弄清楚,view definition显示了这些值是如何计算的,但你需要深入研究才能真正理解它。
但是由于Oracle建议不要使用它,因此可能不值得这样做。如果您真的想使用
table_privileges
而不是all_tab_privs
,那么您可能只需将'N'区分为false和任何其他值为true。