oracle受權與回收許可權grant和revoke
資料來源網路
資料來源網路
1.GRANT 賦於許可權
常用的系統許可權集合有以下三個:
CONNECT(基本的連線), RESOURCE(程式開發), DBA(資料庫管理)
常用的資料物件許可權有以下五個:
ALL ON 資料物件名, SELECT ON 資料物件名, UPDATE ON 資料物件名,
DELETE ON 資料物件名, INSERT ON 資料物件名, ALTER ON 資料物件名
GRANT CONNECT, RESOURCE TO 使用者名稱;
GRANT SELECT ON 表名 TO 使用者名稱;
GRANT SELECT, INSERT, DELETE ON表名 TO 使用者名稱1, 使用者名稱2;
2.REVOKE 回收許可權
REVOKE CONNECT, RESOURCE FROM 使用者名稱;
REVOKE SELECT ON 表名 FROM 使用者名稱;
REVOKE SELECT, INSERT, DELETE ON表名 FROM 使用者名稱1, 使用者名稱2;
一、概述
這一部分我們主要看看Oracle如何管理許可權和角色,許可權和角色的區別在哪裡。
當剛剛建立使用者時,使用者沒有任何許可權,也不能執行任何操作。如果要執行某種特定的資料庫操作,則必須為其授予系統的許可權。如果使用者要訪問其他方案的物件,則必須為其授予物件的許可權,為了簡化許可權的管理,可以使用角色。這裡我們會詳細介紹。
二、許可權
許可權是指執行特定型別的Sql命令或是訪問其他方案物件的權利,包括系統許可權和物件許可權。
1、系統許可權
A、系統許可權的介紹
系統許可權是指執行特定型別Sql命令的權利,它用於控制使用者可以執行的一個或是一組資料庫操作。比如當使用者具有create table許可權是,可以在其方案中建表,當使用者具有create any table許可權時,可以在任何方案中建表。Oracle提供了100多種系統許可權。
常用的有
create session連線資料庫
create view建立檢視
create procedure建立過程、函式、包
create cluster建簇
create table建立表
create public synonym建立同義詞
create trigger 建立觸發器
B、顯示系統許可權
Oracle提供了100多種系統許可權,而且Oracle的版本越高,提供的系統許可權就越多,我們可以查詢資料字典檢視system_privilege_map,可以顯示所有系統許可權。
sql>select * from system_privilege_map order by name;
三、授予系統許可權
一般情況,授予系統許可權是有dba完成的,如果用其他使用者來授予系統許可權,則要求該使用者必須具有grant any privilege的系統許可權在授予系統許可權時,可以帶有with admin option選項,這樣,被授予許可權的使用者或是角色還可以將該系統許可權授予其他的使用者或是角色。
案例:
1、建立兩個使用者ken,tom,初始階段他們沒有任何許可權,如果登入就會給出錯誤資訊。
sql>create user ken identified by m123;
sql>create user tom identified by m123;
2、給使用者ken授權
sql>grant create session,create table to ken with admin option;
sql>grant create view to ken;
3、給使用者tom授權
我們可以通過ken給tom授權,因為with admin option是加上的。當然也可以通過DBA給tom授權,我們就用ken給tom授權。
sql>grant create session,create table to tom with admin option;
sql>grant create view to tom;——這個是不可以的,因為Ken沒有該許可權的下放許可權。
四、回收系統許可權
一般情況下,回收系統許可權是dba來完成的,如果其他的使用者來回收系統許可權,要求該使用者必須具有相應系統許可權及轉授系統許可權的選項(with admin option)。回收系統許可權使用revoke來完成。
當回收了系統許可權後,使用者就不能執行相應的操作了,但是請注意,系統許可權不是級聯回收的。
執行以下語句:
sql>revoke create session from ken;
說明:DBA執行了該語句後回收了Ken的登入許可權後,Ken自然就不能再登入了,有Ken下放的該許可權所有者tom還是可以正常登入的。
五、物件許可權
指訪問其他方案物件的權利,使用者可以直接訪問自己方案的物件。但是如果要訪問別的方案的物件,則必須具有物件的許可權。比如Smith使用者要訪問scott.emp表(scott:方案,emp:表),則必須在scott.emp表上具有物件的許可權。
常用的有:
alter修改表結構
delete 刪除資料
select查詢資料
insert新增資料
update修改資料
index在表上建立索引
references引用
execute執行
1、顯示物件許可權
通過資料字典檢視可以顯示使用者或是角色所具有的物件許可權。檢視為dba_tab_privs
sql>select distinct privilege from dba_tab_privs;
sql>select grantor,owner,table_name,privilege from dba_tab_privs where grantee='Black';
2、傳授物件許可權
物件許可權可以授予使用者、角色和public。在授予物件許可權是,如果帶有with grant option選項,則可以將該許可權轉授給其他使用者,但是要注意with grant option選項不能被授予角色。
1、monkey使用者要操作scott.emp表,則必須授予相應的物件許可權
希望monkey可以查詢scott.emp表的資料,怎麼操作
sql>grant select on emp to monkey;
希望monkey可以修改scott.emp表的資料,怎麼操作
sql>grant update on emp to monkey;
希望monkey可以刪除scott,emp表的資料,怎麼操作
sql>grant delete on emp to monkey;
有沒有更加簡單的方法,一次吧所有的許可權賦給monkey
sql>grant all on emp to monkey;
2、能否對monkey訪問許可權更加精細控制。(授予列許可權)
希望monkey只可以修改scott.emp的表的sal欄位,怎樣操作
sql>grant update on emp(sal) to monkey;
希望monkey只可查詢scott.emp的表的ename,sal資料,怎樣操作
sql>grant select on emp(ename,sal) to monkey;
3、授予alter許可權
如果monkey使用者要修改scott.emp表的結構,則必須授予alter物件許可權
sql>grant alter on emp to monkey;
當然也可以用sys,system來完成這件事。
4、授予execute許可權
如果使用者想要執行其他方案的包/過程/函式,則需要有execute許可權。
比如為了讓Ken可以執行包abms_transaction,可以授予execute許可權。
sql>grant execute on dbms_transaction to ken;
5、授予index許可權
如果想要在別的方案的表上建立索引,則必須要具有index物件許可權
如為了讓Ken可以在scott.emp表上建立索引,就給其index的物件許可權
sql>grant index on scott.emp to ken;
6、使用with grant option選項
該選項用於傳授物件許可權,但是該選項只能被授予使用者,而不能授予角色。
sql>grant select on emp to ken with grant option;
7、回收物件許可權
在Oracle中,收回物件的許可權可以由物件的所有者來完成。
這裡要說明的是:收回物件許可權後,使用者就不能執行相應的sql命令,但是要注意的是物件的許可權是會被級聯回收的。
sql>revoke select on emp from ken;
說明:Scott執行了該語句後,就回收了Ken使用者在emp表上查詢許可權,因此此時ken已經不能對scott.emp進行查詢操作了。於此同時也收回了ken轉授下去的該許可權,有ken授予的對scott.emp表查詢的許可權的獲得者也不能對scott.emp進行查詢操作了。
資料來源網路
1.GRANT 賦於許可權
常用的系統許可權集合有以下三個:
CONNECT(基本的連線), RESOURCE(程式開發), DBA(資料庫管理)
常用的資料物件許可權有以下五個:
ALL ON 資料物件名, SELECT ON 資料物件名, UPDATE ON 資料物件名,
DELETE ON 資料物件名, INSERT ON 資料物件名, ALTER ON 資料物件名
GRANT CONNECT, RESOURCE TO 使用者名稱;
GRANT SELECT ON 表名 TO 使用者名稱;
GRANT SELECT, INSERT, DELETE ON表名 TO 使用者名稱1, 使用者名稱2;
2.REVOKE 回收許可權
REVOKE CONNECT, RESOURCE FROM 使用者名稱;
REVOKE SELECT ON 表名 FROM 使用者名稱;
REVOKE SELECT, INSERT, DELETE ON表名 FROM 使用者名稱1, 使用者名稱2;
一、概述
create view建立檢視
create procedure建立過程、函式、包
create cluster建簇
create table建立表
create public synonym建立同義詞
create trigger 建立觸發器
B、顯示系統許可權
sql>select * from system_privilege_map order by name;
sql>create user ken identified by m123;
sql>create user tom identified by m123;
sql>grant create session,create table to ken with admin option;
sql>grant create view to ken;
3、給使用者tom授權
我們可以通過ken給tom授權,因為with admin option是加上的。當然也可以通過DBA給tom授權,我們就用ken給tom授權。
sql>grant create session,create table to tom with admin option;
sql>grant create view to tom;——這個是不可以的,因為Ken沒有該許可權的下放許可權。
四、回收系統許可權
sql>revoke create session from ken;
說明:DBA執行了該語句後回收了Ken的登入許可權後,Ken自然就不能再登入了,有Ken下放的該許可權所有者tom還是可以正常登入的。
五、物件許可權
alter修改表結構
delete 刪除資料
select查詢資料
insert新增資料
update修改資料
index在表上建立索引
references引用
execute執行
1、顯示物件許可權
sql>select distinct privilege from dba_tab_privs;
sql>select grantor,owner,table_name,privilege from dba_tab_privs where grantee='Black';
2、傳授物件許可權
物件許可權可以授予使用者、角色和public。在授予物件許可權是,如果帶有with grant option選項,則可以將該許可權轉授給其他使用者,但是要注意with grant option選項不能被授予角色。
1、monkey使用者要操作scott.emp表,則必須授予相應的物件許可權
希望monkey可以查詢scott.emp表的資料,怎麼操作
sql>grant select on emp to monkey;
希望monkey可以修改scott.emp表的資料,怎麼操作
sql>grant update on emp to monkey;
希望monkey可以刪除scott,emp表的資料,怎麼操作
sql>grant delete on emp to monkey;
有沒有更加簡單的方法,一次吧所有的許可權賦給monkey
sql>grant all on emp to monkey;
2、能否對monkey訪問許可權更加精細控制。(授予列許可權)
希望monkey只可以修改scott.emp的表的sal欄位,怎樣操作
sql>grant update on emp(sal) to monkey;
希望monkey只可查詢scott.emp的表的ename,sal資料,怎樣操作
sql>grant select on emp(ename,sal) to monkey;
3、授予alter許可權
如果monkey使用者要修改scott.emp表的結構,則必須授予alter物件許可權
sql>grant alter on emp to monkey;
當然也可以用sys,system來完成這件事。
4、授予execute許可權
如果使用者想要執行其他方案的包/過程/函式,則需要有execute許可權。
比如為了讓Ken可以執行包abms_transaction,可以授予execute許可權。
sql>grant execute on dbms_transaction to ken;
5、授予index許可權
如果想要在別的方案的表上建立索引,則必須要具有index物件許可權
sql>grant index on scott.emp to ken;
6、使用with grant option選項
該選項用於傳授物件許可權,但是該選項只能被授予使用者,而不能授予角色。
sql>grant select on emp to ken with grant option;
在Oracle中,收回物件的許可權可以由物件的所有者來完成。
這裡要說明的是:收回物件許可權後,使用者就不能執行相應的sql命令,但是要注意的是物件的許可權是會被級聯回收的。
sql>revoke select on emp from ken;
說明:Scott執行了該語句後,就回收了Ken使用者在emp表上查詢許可權,因此此時ken已經不能對scott.emp進行查詢操作了。於此同時也收回了ken轉授下去的該許可權,有ken授予的對scott.emp表查詢的許可權的獲得者也不能對scott.emp進行查詢操作了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15187685/viewspace-755939/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 詳解GuassDB資料庫許可權命令:GRANT和REVOKE資料庫
- unlimited tablespace許可權的授予和回收MIT
- linux 檔案許可權 s 許可權和 t 許可權解析Linux
- mysql 給了使用者所有許可權ALL PRIVILEGES,但是該使用者沒有grant許可權MySql
- 選單許可權和按鈕許可權設定
- Linux的檔案存取許可權和0644許可權Linux
- 許可權之選單許可權
- Android6.0------許可權申請管理(單個許可權和多個許可權申請)Android
- 如何用 Vue 實現前端許可權控制(路由許可權 + 檢視許可權 + 請求許可權)Vue前端路由
- Oracle軟體許可權修復Oracle
- Django(63)drf許可權原始碼分析與自定義許可權Django原始碼
- 許可權系統:一文搞懂功能許可權、資料許可權
- Oracle使用者角色許可權管理Oracle
- 賬號和許可權管理
- Linux特殊許可權之suid、sgid、sbit許可權LinuxUI
- 1.7.6. 授權和撤銷管理許可權
- Linux許可權Linux
- 許可權控制
- mysql許可權MySql
- 呼叫者許可權與定義者許可權的pl/sql子程式SQL
- android動態許可權到自定義許可權框架Android框架
- 【自然框架】許可權的視訊演示(二):許可權到欄位、許可權到記錄框架
- django開發之許可權管理(一)——許可權管理詳解(許可權管理原理以及方案)、不使用許可權框架的原始授權方式詳解Django框架
- 類的許可權與應用
- Linux使用者與許可權Linux
- SpringBoot與Shiro整合-許可權管理Spring Boot
- Linux賬戶與許可權管理Linux
- 一對一原始碼,前端頁面許可權和按鈕許可權控制原始碼前端
- 小知識:軟體開發的許可權控制和許可權驗證
- Linux提權-許可權升級Linux
- 總結sysdba和sysoper許可權
- 許可權系統:許可權應用服務設計
- MongoDB 4.0檢視,更新和回收角色許可權步驟MongoDB
- Confluence6對比系統管理員許可權和Confluence管理員許可權
- Android 通知許可權Android
- Android SELinux許可權AndroidLinux
- 4、許可權管理
- sql許可權管理SQL
- RBAC許可權管理