1. 程式人生 > >詳細講解Oracle資料庫——系統許可權與物件許可權傳遞使用規則

詳細講解Oracle資料庫——系統許可權與物件許可權傳遞使用規則

**

大家好,我是今天的博主,<一個想做全棧的鹹魚> 今天跟大家一起學習一下Oracle資料庫什麼事系統許可權與物件許可權傳遞呢?

舉個小例子:
系統許可權
sys–a--b sys許可權分別給了ab
物件許可權
a-b-c a許可權給了b,b有分配給了c的許可權

  • 系統許可權

先確認一下當前是哪個使用者
show user;
在檢視一下系統許可權
select * from user_sys_privs;
如果想把sys授權給a
grant alter any table to a;
a視窗查詢當前許可權
select * from uset_sys_privs;
在把a的許可權給b的話,就要在sys視窗在給a許可權,讓a帶有管理許可權
grant alter any table to a with admin option;
此時在a視窗查詢當前許可權
select * from user_sys_privs;
會發現ALTER ANY TABLE此時為YES狀態,表示a已經接受到sys給的許可權,可以再次將a的許可權給於b;
grant alter any table to b;
此時就成功的將a許可權給予b
在b視窗查詢當前許可權
select * from user_sys_privs;
b視窗現實,成功的接受到a的許可權

如果想要在b分給其他表的許可權:
在加上 grant alter any table to 表名 with admin
option;就可以授權給其他表

  • 物件許可權
  • 物件許可權就是誰建立誰授予給其他表許可權

建立一個表
create table A(id int);
grant select On A to a;
在a視窗查詢當前許可權
select * from user_sys_privs;
在sys設定讓a帶著授權選項
grant select On A to a with grant option;
此時在a視窗,a表就可以吧許可權分給其他表
grant select On sys.A to b;

如果想要把A的許可權在分配給其他許可權就要加
grant select On A to b with grant option;
b就可以把A許可權分配給其他

思考問題:sys許可權分配給了a,a又分配給了b
如果sys把給予a的許可權撤銷後,b還有之前的許可權嗎?
在這裡插入圖片描述
希望可以幫助到大家,我們下次再見,我還是那個鹹魚!