列許可權的一點總結!

warehouse發表於2008-07-18
oracle 部分物件許可權(insert,update,references)可以控制到列![@more@]

SQL> connect test5/test5
已連線。
SQL> grant insert(id , name) , update(sex) ,select on t to test2;

授權成功。

SQL> show user
USER 為 "TEST5"
SQL> connect test2/test2
已連線。
SQL> select * from test5.t;

ID NAME S
---------- ---------- -
2 a 2
3 a 2

SQL> insert into test5.t values(1 , 'a' , 1);
insert into test5.t values(1 , 'a' , 1)
*
第 1 行出現錯誤:
ORA-01031: 許可權不足


SQL> insert into test5.t(id , name) values(1 , 'a');

已建立 1 行。

SQL> commit;

提交完成。

SQL> update test5.t set sex='0';

已更新3行。

SQL> rollback;

回退已完成。

SQL> connect test5/test5
已連線。
SQL> grant references(id) on t to test2;

授權成功。

SQL> connect /as sysdba
已連線。
SQL> desc dba_col_privs
名稱 是否為空? 型別
----------------------------------------- -------- ----------------------------

GRANTEE NOT NULL VARCHAR2(30)
OWNER NOT NULL VARCHAR2(30)
TABLE_NAME NOT NULL VARCHAR2(30)
COLUMN_NAME NOT NULL VARCHAR2(30)
GRANTOR NOT NULL VARCHAR2(30)
PRIVILEGE NOT NULL VARCHAR2(40)
GRANTABLE VARCHAR2(3)

SQL> select *from dba_col_privs;

GRANTEE OWNER TABLE_NAME COLUMN_NAM GRANTOR PRIVILEGE

GRA
---------- ---------- ---------- ---------- ---------- ---------- ---
TEST2 TEST5 T NAME TEST5 INSERT NO
TEST2 TEST5 T ID TEST5 INSERT NO
TEST2 TEST5 T SEX TEST5 UPDATE NO
TEST2 TEST5 T ID TEST5 REFERENCES NO

SQL>

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/19602/viewspace-1007476/,如需轉載,請註明出處,否則將追究法律責任。

相關文章