oracle 在授予SQL数据库用户的权限中,G和A特权是什么?

daupos2t  于 2023-03-29  发布在  Oracle
关注(0)|答案(1)|浏览(255)

我正在执行以下查询,以获取查询中看到的用户的授予权限:

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是什么意思

fcy6dtqo

fcy6dtqo1#

主文档中没有描述该视图,但在各种Gateway文档中提到了它,例如Database Gateway for Informix User's Guide,其中显示了不同数据库的不同可能值,但没有解释它们。
在19 c SQL参考中,它得到了一个顺便提及:
Oracle在以下元数据视图中提供此信息:

  • 使用ALL_TAB_PRIVS代替TABLE_PRIVILEGES。
  • 使用ALL_COL_PRIVS代替COLUMN_PRIVILEGES。

如果你回到8i docs(!),它会说:
此视图包含有关用户是其授权者、被授权者或所有者,或PUBLIC是其被授权者的对象的赠款信息。包含此视图是为了与Oracle版本6兼容。建议不要使用此视图。
table_privilegesall_tab_privsfiddle)进行比较,表明'G'相当于grantable为'YES'(仅在我的数据库中的两行中出现select_priv),但不清楚为什么insert_privupdate_priv似乎总是使用'A'而不是'Y'。也许这是Oracle 6中的区别,现在没有真实的的意义。
如果你真的很想弄清楚,view definition显示了这些值是如何计算的,但你需要深入研究才能真正理解它。
但是由于Oracle建议不要使用它,因此可能不值得这样做。如果您真的想使用table_privileges而不是all_tab_privs,那么您可能只需将'N'区分为false和任何其他值为true。

相关问题