Grant授權、revoke取消授權
阿新 • • 發佈:2019-02-04
Oracle學習筆記一
終於開始學習oracle了,在電腦上成功安裝了oracle9i
今天學習的是oracle的許可權管理
首先在開始--》執行——》cmd,然後輸入 sqlplus sys/密碼 as sysdba
以sys許可權登陸進去
然後可以進行操作、:
建立使用者 create user test indentified by test;
這樣就建立了一個使用者名稱密碼都為test的使用者
但這個時候test還是不能登陸成功的,我們需要賦予相應的許可權
首先賦予create session的許可權
grant create session to test;
這樣test使用者就能成功登陸進去
但是此時使用者還是不能建立表 我們需要賦予使用者建立表的許可權:
grant
但是使用者此時還不能建立表 因為需要有使用表空間的許可權(相當於 使用者有了進房間的鑰匙 但是沒有進大門的鑰匙。。。)
所以也應該賦予相應的許可權
grant unlimited tablespace to test;
這個時候使用者就擁有了建立表的許可權 由於表是使用者test的 相應的他就擁有了對建立的表的增刪查改的許可權了
我們要檢視使用者擁有什麼許可權可以通過查詢一個系統的檢視(數字字典)
select * from user_sys_privs;
這樣就可以知道當前使用者的許可權
撤銷許可權 revoke create table from test;
場景:
使用者test 使用者test1
test1的使用者建立了個表mytab 並且插入了一些資料
那麼 test使用者是否可以訪問到test1的mytab怎麼訪問?
答:不可以,必須先授權
test1必須授權給test :grant
那麼這個時候test可以通過 select * from test1.mytab;來訪問mytab中的資料
如果想把某個表(物件)的所有許可權都賦予給test那麼可以:
grant all on mytab to test;
撤銷所有許可權
revoke all on mytab to test;
總結
對於系統許可權由sys來做
對於物件許可權由 誰擁有誰授權
系統許可權:
grant create session to test;
grant create table to test;
grant
revoke create session from test;
revoke create table from test;
revoke unlimited tablespase from test;
grant create session to public; //表示把建立表的許可權賦予所有人
select * from user_sys_privs; //返回當前使用者的所有系統許可權
物件許可權
grant select on mytab to test;
grant all on mytab to test;
revoke select on mytab from test;
revoke all on mytab from test;
select * from user_tab_privs; //返回當前使用者所有的物件許可權
物件許可權可以控制到列
grant update(name) on mytab to test;
grant insert(id) on mytab to test;
select * from user_col_privs;
注意、:查詢和刪除不能控制到列
需要有commit的 insert update insert
許可權的傳遞
系統許可權的傳遞:
grant alter table to A with admin option;
那麼A可以通過把該許可權傳遞給B,如果想B也可以傳遞下去那麼可以也帶上with admin option
grant alter table to B;
物件許可權的傳遞:
grant select on mytab to A with grant option;
那麼A可以把在表mytab的select許可權賦予給B,如果B想也能傳遞該select許可權也可以帶上with grant option
grant select on mytab to B;