Oracle 用戶權限管理

 在成功的建立用戶以後,僅僅表示該用戶在 Oracle 系統中進行了註冊,這樣的用戶不能鏈接到數據庫。要使用戶可以鏈接到 Oracle 數據庫並使用 Oracle 的資源,必須讓具備 DBA 角色的用戶對該用戶進行受權。數據庫

1、權限簡介

  根據系統管理方式的不一樣,在 Oracle 數據庫將權限分爲兩大類:系統權限和對象權限。安全

  系統權限是在系統級對數據庫進行存取和使用的機制,好比用戶是否能鏈接到數據庫系統、執行系統級的DDL語句(如create、alter和drop)等函數

  對象權限是指某一用戶對其餘用戶的表、視圖、序列、存儲過程、函數、包等的操做權限。不一樣類型的對象具備不一樣的對象權限,對於某些模式對象,好比簇、索引、觸發器等、數據庫鏈接等沒有相應的實體權限,這些權限由系統權限進行管理。spa

2、受權操做

  在 Oracle 11g 中有200多種系統特權,而且全部這些系統特權被列舉在system_privilege_map 數據目錄視圖中。受權操做使用grant 命令對象

  語法 grant   sys_privi  |   role  to  user  |  role | public [ with admin option ]   索引

  •   sys_privi: 表示 Oracle 系統權限,系統權限是一組約定的保留字。
  •   role: 角色,後面的筆記會介紹到
  •   user :具體的用戶名,或者是一些列的用戶名
  •   public: 保留字,表明 Oracle 系統的全部用戶。
  •   with  admin option :表示被受權者能夠再將這些權授予另外的用戶。

3、回收系統權限

  通常用戶若被授予多高的權限就可能給 Oracle 系統帶來安全隱患。 Oracle 的管理員,應該可以查詢當前 Oracle 系統各個用戶的權限,而且可以使用 revoke 命令撤銷用戶的某些沒必要要的系統權限。資源

  語法 revoke   sys_privi  |   role  from  user  | role  |  public           it

  •  sys_privi :系統權限或角色
  •  role: 角色
  •  user: 具體的用戶名
  •  public: 保留字,表明 Oracle 系統全部的用戶
  • 注意:若是DBA用 grant 命令給用戶A授予系統權限的時候帶有with admin option 選項,則用戶A有權將系統權限再次授予用戶B。若是DBA 使用 revoke 命令撤銷用戶A的系統權限,則用戶B的系統權限仍然有效。

4、對象受權

  授予對象權限給用戶或角色也使用 grant 命令。io

  語法 grant obj_privi | all column on schema.object  to  user  |  role  |  public  [  with  grant  option  ]  [  with  hierarchy  option  ]          table

  •  obj_privi :表示對象的權限,能夠是 alter、execute、select、update 和insert 等。
  •  role: 角色名。
  •  user: 被受權的用戶名。
  •  with  admin  option :表示被受權者可在將系統權限授予其餘的用戶。
  •  with  hierarchy  option: 在對象的子對象(在視圖上再創建視圖 )上受權給用戶。 

5、回收對象權限

  要從用戶或角色中回收對象權限,仍然使用revoke 命令。

  語法 revoke obj_privi  |  all  on  schema.object   from  user  |  role  |  public  cascade  constraints 

  •   obj_privi:表示對象的權限
  •   public:保留字,表明 Oracle 系統的全部權限
  •   cascade  ascade   constraints:表示有關聯的權限也被回收
  •  注意:若是DBA 用 grant 命令給用戶A授予對象權限時帶有 with  admin option選項,則用戶A有權將權限再次授予另外的用戶B,若是DBA 用 revoke 命令回收用戶A的對象權限,用戶B的對象權限也被回收。

6、查詢用戶與權限

  用戶被授予的系統權限或對象權限都被記錄在 Oracle 的數據字典裏,瞭解某個用戶被授予哪些系統權限和對象權限是確保應用系統安全的重要工做。下表是Oracle 11g 用於存放用戶、系統權限、對象權限有關的數據字典。

  

數據字典名稱  說       明
DBA_Users                  數據庫用戶基本信息表
DBA_sys_privs   已授予用戶或角色的系統權限
DBA_TAB_privs 數據庫對象上的全部權限
User_SYS_privs 登陸用戶能夠查看本身的系統權限
role_sys_privs 登陸用戶查看本身的角色
all_tables 用戶本身能夠查詢的基表信息
相關文章
相關標籤/搜索