oracle table_privileges值

Bin*_*Ich 7 oracle privileges

在此输入图像描述

有人知道table_privileges中给出的值吗?我已经发现了"A"的含义.但我没有发现"S"代表什么.我认为这没有记录.它与特定列的更新权限有关.

APC*_*APC 5

您缺少的是,我们可以对表的列的子集授予UPDATE。

首先,让我们在一个表上授予SELECT权限。UPDATE_PRIV的值为'N',因为None

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>
Run Code Online (Sandbox Code Playgroud)

现在,如果我在单列上授予UPDATE,则UPDATE_PRIV的值为'S',大概是针对Some

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>
Run Code Online (Sandbox Code Playgroud)

最后,我承认对整个表的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> 
Run Code Online (Sandbox Code Playgroud)


Ben*_*Ben 5

我很抱歉,但是我注意到@JustinCave在2005年给出了这个问题的回答我必须发布它.

从table_privileges上的SQL Reference文档

http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96536/ch2486.htm#1318903

"TABLE_PRIVILEGES包含有关用户是授予者,被授予者或所有者的对象的授权信息,或者PUBLIC是被授予者.此视图是为了与Oracle V6兼容而包含的.Oracle Corporation建议您不要使用此视图."

鉴于Oracle建议您不要使用此视图,我强烈建议您使用DBA_TAB_PRIVS视图.那里的信息应该更容易破译.