基礎知識6——授予和撤銷許可權
授予和撤銷許可權
沒許可權,使用者不能做任何操作,甚至無法成功連線. grant授權,revoke撤銷許可權.
許可權有兩種:系統許可權和物件許可權,前者通常允許使用者執行影響資料字典的操作,後者允許使用者執行影響資料的操作.
系統許可權
大概200多種,大多數應用於影響資料字典的操作,比如建立表,使用者,影響例項或資料庫的,建立表空間,調整例項引數,建立會話,常用的許可權如下:
建立會話(create session) --允許使用者進行連線.
受限制的會話(restricted session) --如果使用startup restrict啟動資料庫,或使用alter system enable restricted session進行調整,則僅擁有此許可權的使用者可以聯接.
更改資料庫(alter database) --允許訪問多個修改物理結構所需的命令.
更改系統(alter system) --允許控制例項引數和記憶體結構
建立表空間(create tablespace) --alter tablespace和drop tablespace許可權允許使用者管理表空間
建立表(create table) --允許使用者在自己的模式中建立表,更改和刪除表,執行select,DML,建立更改或刪除index.
授予任何物件許可權(grant any object privilege) 允許使用者將自己沒有的物件的物件許可權授予他人,但不能授予自己.
建立任何表(create any table) 被授權人可以建立屬於其他使用者的表.
刪除任何表(drop any table) 可以刪除屬於其他使用者的表
插入,更新,刪除任何表(insert any table,update any table,delete any table) 可以對所有其他使用者的表執行這些DML.
選擇任何表(select any table) 可以對資料庫中任何表執行select操作.
授予許可權的語法:
GRANT privilege [ ,privilege... ] TO username;
一般建立使用者後給予以下常用系統許可權:
grant create session,alter session,create table,create view,create synonym,
create cluster,create database link,create sequence,create trigger,create type,
create procedure,,create operator to username;
以上許可權允許使用者連線和配置會話,建立儲存資料的物件和PL/SQL物件.這些物件存在於其模式中,使用者不擁有針對其他任何模式的許可權.
物件的建立將受到為其分配(或未分配)的針對各個表空間的配額的限制.
此語法的一個變體允許被授權人將許可權傳遞給第三方,例子:
connect system/pwd
grant create table to scott with admin option;
connect scott/tiger
grant create table to bob;
給予scott在自己的模式下建立表的能力,也給予scott將建立表的權利給予bob
如果從使用者撤銷許可權,使用者建立的表會不變,如果使用者A被授予帶有admin option的許可權,那麼即使做了撤銷,A授予了許可權的使用者B也將保留許可權,不儲存系統許可權授予者的記錄,所以不存在撤銷級聯.
系統許可權的撤銷不會級聯(與撤銷物件許可權不用),要牢記!
any許可權針對資料庫中所有相關物件,比如
grant select any table to scott
將允許scott查詢每個模式中的每個表,輕易不要將any許可權授予使用者.而且any許可權針對資料庫中的每個使用者賬戶的每個物件進行授權,因此是系統許可權而不是物件許可權.
物件許可權
物件許可權允許針對表和相關物件執行select,insert,update,delete命令,也允許執行PL/SQL物件,如果使用者有create table許可權,就
可以對錶執行select和DML操作,而不需要獲得更多許可權.
物件許可權適用於不同型別的物件
語法如下:
GRANT privilege ON [ schema. ] object TO username [ WITH GRANT OPTION ];
比如:
grant selec on store.customers to scott;
變化包括使用all,及命名檢視或表的特定列:
grant select on store.orders to scott;
grant update (order_status) on store.orders to scott;
grant all on store.regions to scott;
此程式碼將允許scott查詢store模式中的orders表的所有列,但只能對order_status列執行寫操作.此後scott被給予store的regions表的所有物件許可權(select和DML)
使用with grant option,可使使用者將其物件許可權傳給其它使用者,oracle保留著物件許可權授予誰的記錄,所以會產生級聯效應.
connect store/pwd
grant select on customers to sales with grant option;
connect sales/pwd
grant select on store.customers to webapp with grant option;
connect webapp/pwd
grant select on store.customers to scott;
connect store/pwd
revoke select on customers from sales;
最後的結果是sales,wdbapp和scott都沒了針對store.customers的select許可權.
物件許可權的撤銷會產生級聯效應(這與系統許可權的撤銷不同)
練習時間,為一些使用者授予一些許可權
用system登入為sales授予create session許可權
grant create session to sales;
另開一個plus,用sales連線,能連上但無法建立表
system會話中授予sales許可權create table
grant create table to sales;
再建立表還會報錯,因為沒配額
system中為sales分配storedata表空間配額:
alter user sales quota 1m on storedata;
以sale的身份,在新表上授予物件許可權:
grant all on t1 to webapp;
grant select on t1 to accounts;
使用plus檢索資訊,以system身份執行查詢
select grantee,privilege,grantor,grantable from dba_tab_privs
where owner='SALES' and table_name='T1';
select * from dba_sys_privs
where grantee='SALES';
撤銷授予webapp和accounts的許可權:
revoke all on sales.t1 from webapp;
revoke all on sales.t1 from accounts;
沒許可權,使用者不能做任何操作,甚至無法成功連線. grant授權,revoke撤銷許可權.
許可權有兩種:系統許可權和物件許可權,前者通常允許使用者執行影響資料字典的操作,後者允許使用者執行影響資料的操作.
系統許可權
大概200多種,大多數應用於影響資料字典的操作,比如建立表,使用者,影響例項或資料庫的,建立表空間,調整例項引數,建立會話,常用的許可權如下:
建立會話(create session) --允許使用者進行連線.
受限制的會話(restricted session) --如果使用startup restrict啟動資料庫,或使用alter system enable restricted session進行調整,則僅擁有此許可權的使用者可以聯接.
更改資料庫(alter database) --允許訪問多個修改物理結構所需的命令.
更改系統(alter system) --允許控制例項引數和記憶體結構
建立表空間(create tablespace) --alter tablespace和drop tablespace許可權允許使用者管理表空間
建立表(create table) --允許使用者在自己的模式中建立表,更改和刪除表,執行select,DML,建立更改或刪除index.
授予任何物件許可權(grant any object privilege) 允許使用者將自己沒有的物件的物件許可權授予他人,但不能授予自己.
建立任何表(create any table) 被授權人可以建立屬於其他使用者的表.
刪除任何表(drop any table) 可以刪除屬於其他使用者的表
插入,更新,刪除任何表(insert any table,update any table,delete any table) 可以對所有其他使用者的表執行這些DML.
選擇任何表(select any table) 可以對資料庫中任何表執行select操作.
授予許可權的語法:
GRANT privilege [ ,privilege... ] TO username;
一般建立使用者後給予以下常用系統許可權:
grant create session,alter session,create table,create view,create synonym,
create cluster,create database link,create sequence,create trigger,create type,
create procedure,,create operator to username;
以上許可權允許使用者連線和配置會話,建立儲存資料的物件和PL/SQL物件.這些物件存在於其模式中,使用者不擁有針對其他任何模式的許可權.
物件的建立將受到為其分配(或未分配)的針對各個表空間的配額的限制.
此語法的一個變體允許被授權人將許可權傳遞給第三方,例子:
connect system/pwd
grant create table to scott with admin option;
connect scott/tiger
grant create table to bob;
給予scott在自己的模式下建立表的能力,也給予scott將建立表的權利給予bob
如果從使用者撤銷許可權,使用者建立的表會不變,如果使用者A被授予帶有admin option的許可權,那麼即使做了撤銷,A授予了許可權的使用者B也將保留許可權,不儲存系統許可權授予者的記錄,所以不存在撤銷級聯.
系統許可權的撤銷不會級聯(與撤銷物件許可權不用),要牢記!
any許可權針對資料庫中所有相關物件,比如
grant select any table to scott
將允許scott查詢每個模式中的每個表,輕易不要將any許可權授予使用者.而且any許可權針對資料庫中的每個使用者賬戶的每個物件進行授權,因此是系統許可權而不是物件許可權.
物件許可權
物件許可權允許針對表和相關物件執行select,insert,update,delete命令,也允許執行PL/SQL物件,如果使用者有create table許可權,就
可以對錶執行select和DML操作,而不需要獲得更多許可權.
物件許可權適用於不同型別的物件
語法如下:
GRANT privilege ON [ schema. ] object TO username [ WITH GRANT OPTION ];
比如:
grant selec on store.customers to scott;
變化包括使用all,及命名檢視或表的特定列:
grant select on store.orders to scott;
grant update (order_status) on store.orders to scott;
grant all on store.regions to scott;
此程式碼將允許scott查詢store模式中的orders表的所有列,但只能對order_status列執行寫操作.此後scott被給予store的regions表的所有物件許可權(select和DML)
使用with grant option,可使使用者將其物件許可權傳給其它使用者,oracle保留著物件許可權授予誰的記錄,所以會產生級聯效應.
connect store/pwd
grant select on customers to sales with grant option;
connect sales/pwd
grant select on store.customers to webapp with grant option;
connect webapp/pwd
grant select on store.customers to scott;
connect store/pwd
revoke select on customers from sales;
最後的結果是sales,wdbapp和scott都沒了針對store.customers的select許可權.
物件許可權的撤銷會產生級聯效應(這與系統許可權的撤銷不同)
練習時間,為一些使用者授予一些許可權
用system登入為sales授予create session許可權
grant create session to sales;
另開一個plus,用sales連線,能連上但無法建立表
system會話中授予sales許可權create table
grant create table to sales;
再建立表還會報錯,因為沒配額
system中為sales分配storedata表空間配額:
alter user sales quota 1m on storedata;
以sale的身份,在新表上授予物件許可權:
grant all on t1 to webapp;
grant select on t1 to accounts;
使用plus檢索資訊,以system身份執行查詢
select grantee,privilege,grantor,grantable from dba_tab_privs
where owner='SALES' and table_name='T1';
select * from dba_sys_privs
where grantee='SALES';
撤銷授予webapp和accounts的許可權:
revoke all on sales.t1 from webapp;
revoke all on sales.t1 from accounts;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25025926/viewspace-1068076/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 基礎知識6——安全和最小許可權原則
- 1.7.6. 授權和撤銷管理許可權
- 【MySql】許可權不足導致的無法連線到資料庫以及許可權的授予和撤銷MySql資料庫
- 許可權授予、回收命令
- unlimited tablespace許可權的授予和回收MIT
- chomd檔案許可權授予
- 【LIUNX】目錄或檔案許可權,許可權授予
- 小知識:軟體開發的許可權控制和許可權驗證
- 【詳解】GrantedAuthority(已授予的許可權)
- 基礎知識6——建立和管理角色
- 許可權概念、許可權提升概念以及許可權提升的分類和目的 Windows 提權的基礎原理是瞭解作業系統的安全機制和許可權管理 Windows提權攻擊的進一步知識概念Windows作業系統
- MySQL基礎知識(6)MySql
- Linux基礎之許可權管理Linux
- 如何在 Ubuntu 上為使用者授予和移除 sudo 許可權Ubuntu
- 一起學習在 Ubuntu 上授予和移除 sudo 許可權Ubuntu
- es6基礎知識
- 基礎知識6——建立和管理配置檔案
- linux 檔案許可權 s 許可權和 t 許可權解析Linux
- [資料庫]MYSQL之授予/查驗binlog許可權資料庫MySql
- linux系統下的許可權知識梳理Linux
- corejava基礎知識(6)-檢視Java
- 許可權系統:6個許可權概念模型設計模型
- Android系統許可權和root許可權Android
- django-rest-framework 基礎三 認證、許可權和頻率DjangoRESTFramework
- 授予普通使用者檢視執行計劃許可權
- jenkins--為普通使用者授予指定job許可權Jenkins
- 柳大的Linux講義·基礎篇(3)許可權、連結與許可權管理Linux
- SAP SD基礎知識之銷售模式模式
- IPv6基礎知識詳解
- 基礎知識6——建立和管理使用者賬戶
- 選單許可權和按鈕許可權設定
- SSL和CA基礎知識
- GMAC和PHY基礎知識Mac
- 十、Abp vNext 基礎篇丨許可權
- Linux 基礎-檔案許可權與屬性Linux
- linux 基礎(2)檔案許可權及其修改Linux
- linux基礎:檔案安全與許可權(轉)Linux
- 基於 Laravel5.5 和 layui 包含基礎 RBAC 許可權的管理後臺LaravelUI