標籤:授權 視圖 資料庫許可權 employee 特定 revoke 備份 集合 ble
系統許可權
系統許可權是指被授權使用者是否可以串連到資料庫上及在資料庫中可以進行哪些系統操作。
系統許可權是在資料庫中執行某種系統層級的操作,或者針對某一類的對象執行的某種操作的權利。
下面列舉4個常見的系統許可權:
1) create session:串連到資料庫。
2) create table:建立表。
3) create view:建立視圖。
4) create sequence:建立序列。
對象許可權
對象許可權是指使用者對資料庫中具體對象所具有的許可權。
對象許可權是針對某個特定的模式對象執行操作的權利,只能針對模式對象來設定和管理對象許可權。
Oracle資料庫使用者有兩種途徑獲得許可權。
1.管理員直接向使用者授予許可權。
2.管理員將許可權授予角色,然後再將角色授予一個或多個使用者。(角色可以理解為一組許可權的“集合”)
授予許可權文法:
grant 許可權|角色 to 角色名稱;
撤銷許可權文法:
revoke 許可權|角色 from 使用者名稱;
資料庫使用者安全設計原則:
1.資料庫使用者權限按照最小分配原則。
2.資料庫使用者分為管理、應用、維護、備份四類使用者。
3.不允許使用sys和system使用者建立資料庫應用對象。
4.禁止將dba許可權賦予使用者。
Oracle系統預定義角色
1.connect:適用於需要串連上資料庫的使用者,特別是不需要建立表的使用者。
2.resource:適用於更為可靠和正式的資料庫使用者。可以建立表、觸發器、過程等。
3.dba:資料庫管理員角色,擁有管理資料庫的最高全向。一個具有dba角色的使用者可以撤銷任何其他使用者甚至其他dba許可權,一般情況下,最好不要對使用者授予這個角色。
對象許可權例子:
--授予使用者A_hr修改System模式下employee表(ename, sal)的許可權
GRANT UPDATE(ename, sal) ON employee
TO A_hr;
或
GRANT ALL ON employee
TO A_hr
WITH GRANT OPTION;
--撤銷許可權
REVOKE ALL ON employee FROM A_hr;
或
UPDATE system.employee SET sal=sal+100 WHERE empno=7788;
select * FROM system.employee;
ROLLBACK;
系統許可權例子
--授予串連會話許可權
GRANT CREATE SESSION TO A_hr;
--授予建立表許可權
GRANT CREATE TABLE TO A_hr;
--許可權合并
GRANT CREATE SESSION,CREATE TABLE TO A_hr;
--多個使用者
GRANT CREATE SESSION,CREATE TABLE TO A_hr,A_oe;
--將許可權授予所有使用者
GRANT CREATE SESSION,CREATE TABLE TO PUBLIC;
--使被授予者進一步將許可權或角色授予其他使用者或角色
GRANT CREATE TABLE TO A_hr WITH ADMIN OPTION;
--撤銷許可權
REVOKE CREATE TABLE FROM A_hr;
--查詢許可權
SELECT * FROM DBA_SYS_PRIVS WHERE grantee =‘A_HR‘;
Oracle資料庫許可權管理