Oracle數據庫(十三)—— 控制用戶權限


 

(一)權限

數據庫安全性:

  • 系統安全性
  • 數據安全性

系統權限: 對於數據庫的權限

對象權限: 操作數據庫對象的權限

 

系統權限

超過一百多種有效的權限

數據庫管理員(DBA)具有高級權限以完成管理任務,例如:

  • 創建新用戶
  • 刪除用戶
  • 刪除表
  • 備份表

 

(二)用戶

1、創建用戶

Oracle登錄用戶為system用戶,system用戶是一個DBA

 

DBA使用CREATE USER語句創建用戶

CREATE USER user

IDENTIFIED BY password;

 

 

使用atguigu用戶登錄

缺少CREATE SESSION權限,無法登錄,在下面會對其賦予權限

 

2、用戶的系統權限

用戶創建之后, DBA 會賦予用戶一些系統權限

GRANT privilege [, privilege...]

TO user [, user | role, PUBLIC...];

以應用程序開發者為例, 一般具有下列系統權限:

  • CREATE SESSION(創建會話)
  • CREATE TABLE(創建表)
  • CREATE SEQUENCE(創建序列)
  • CREATE VIEW(創建視圖)
  • CREATE PROCEDURE(創建過程)

 

-- 授予atguigu用戶CREATE SESSION權限

再次登錄atguigu用戶,登錄成功

在atguigu用戶中創建表

在system用戶中給atguigu賦予創表權限

再次在atguigu用戶中創建表

 

3、創建用戶表空間

用戶擁有create table權限之外,還需要分配相應的表空間才可開辟存儲空間用於創建的表

-- 為atguigu用戶創建一個不限額的表空間

 -- 為atguigu用戶創建一個5M的表空間

 

4、修改密碼

用戶可以修改自己的密碼

 

(三)角色

 

 創建角色並賦予權限

創建角色

給角色賦予權限

將角色賦予用戶

 

(四)對象

1、對象權限

  • 不同的對象具有不同的對象權限
  • 對象的擁有者擁有所有權限
  • 對象的擁有者可以向外分配權限

2、分配對象權限

GRANT object_priv [(columns)]

ON object

TO {user|role|PUBLIC}

[WITH GRANT OPTION];

 

-- 將employees的select,update權限授予atguigu用戶

 

在atguigu用戶中查詢employees表

 

3、WITH GRANT OPTION和PUBLIC關鍵字

WITH GRANT OPTION 使用戶同樣具有分配權限的權利

在system用戶下完成以下命令

在atguigu用戶中可以將此權限授予其他用戶

 

PUBLIC向數據庫中所有用戶分配權限

在system用戶下完成以下命令

則這個數據庫中的用戶都具有這兩個權限

 

4、查詢權限分配情況

-- 查詢用戶擁有的關於表對象權限

 

5、收回對象權限

  • 使用 REVOKE 語句收回權限
  • 使用 WITH GRANT OPTION 子句所分配的權限同樣被收回

REVOKE {privilege [, privilege...]|ALL}

ON object FROM {user[, user...]|role|PUBLIC}

[CASCADE CONSTRAINTS];

 

-- 收回atguigu對於employees表的select權限

 

 

(五)總結

使用 DCL 控制數據庫權限, 創建數據庫聯接:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM