
有人知道table_privileges中给出的值吗?我已经知道"A“是什么意思了但我不知道"S“代表什么。我认为这是没有记录的。它与特定列的update权限有关。
发布于 2012-01-13 06:30:51
您缺少的是,我们可以在表的列的子集上授予UPDATE权限。
首先,让我们只对表授予SELECT权限。UPDATE_PRIV的值为'N',表示无
SQL> grant select on t23 to mr_x;
Grant succeeded.
SQL> select select_priv, update_priv
2 from table_privileges
3 where table_name = 'T23'
4 /
S U
- -
Y N
SQL>现在,如果我在单个列上授予UPDATE,那么UPDATE_PRIV的值是'S',大概对于某些列
SQL> grant update (col2) on t23 to mr_x
2 /
Grant succeeded.
SQL> select select_priv, update_priv
2 from table_privileges
3 where table_name = 'T23'
4 /
S U
- -
Y S
SQL>最后,我在整个表上授予UPDATE,UPDATE_PRIV的值是'A',表示所有
SQL> grant update on t23 to mr_x
2 /
Grant succeeded.
SQL> select select_priv, update_priv
2 from table_privileges
3 where table_name = 'T23'
4 /
S U
- -
Y A
SQL> 发布于 2012-01-13 06:39:25
我很抱歉,但是我注意到an answer在2005年@JustinCave给出了这个问题,我必须把它贴出来。
table_privileges上的SQL参考文档中的
http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96536/ch2486.htm#1318903
TABLE_PRIVILEGES包含有关用户是其授权者、被授权者或所有者或PUBLIC是被授权者的对象的授权信息。包含此视图是为了与Oracle版本6兼容。Oracle公司建议您不要使用此视图。
鉴于Oracle建议您不要使用此视图,我强烈建议您使用DBA_TAB_PRIVS视图。那里的信息应该更容易破译。
https://stackoverflow.com/questions/8843026
复制相似问题