首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 9i 角色管理完全手冊:預定義角色、創建、修改、刪除與腳本實戰

     編輯:Oracle 資料庫相關知識

預定義角色速查表

角色核心權限
CONNECT創建表、視圖、序列、同義詞、DB Link、修改會話
DBA所有系統權限(含 ADMIN OPTION),可授權給他人
RESOURCE創建表、序列、觸發器、過程、包等程序對象
EXP_FULL_DATABASE / IMP_FULL_DATABASE完整導出/導入權限
SELECT_CATALOG_ROLE查詢數據字典表/視圖
DELETE_CATALOG_ROLE / EXECUTE_CATALOG_ROLE刪除/執行系統包

Enterprise Manager 圖形化創建角色

  1. 右鍵「角色」→「創建」
  2. 「一般信息」:角色名、密碼認證方式
  3. 「角色」頁籤:授予子角色
  4. 「系統權限」:勾選系統權限(如 ALTER ANY INDEX、SELECT ANY TABLE)
  5. 「對象權限」:指定具體表/視圖的 SELECT/INSERT/UPDATE/DELETE
  6. 「用戶組」:將角色分配給用戶組
  7. 確認生成 SQL

生成腳本示例:

CREATE ROLE "TEMPROLE" IDENTIFIED BY "temprole";
GRANT ALTER ANY INDEX TO "TEMPROLE" WITH ADMIN OPTION;
GRANT SELECT ANY TABLE TO "TEMPROLE" WITH ADMIN OPTION;
GRANT "CONNECT" TO "TEMPROLE" WITH ADMIN OPTION;
GRANT "DBA" TO "TEMPROLE" WITH ADMIN OPTION;
BEGIN
  DBMS_RESOURCE_MANAGER_PRIVS.GRANT_SWITCH_CONSUMER_GROUP(
    GRANTEE_NAME => 'TEMPROLE',
    CONSUMER_GROUP => 'DEFAULT_CONSUMER_GROUP',
    GRANT_OPTION => FALSE);
END;

腳本文件:第8章\createrole.sql,截圖見圖。

SQL*Plus Worksheet 執行腳本

直接運行 createrole.sql 即可完成創建,結果確認見圖。

角色修改與刪除

修改認證方式

ALTER ROLE "TEMPROLE" IDENTIFIED EXTERNALLY;

腳本:alterrole.sql

撤銷系統權限

REVOKE "DBA" FROM "TEMPROLE";

腳本:revokerole.sql

刪除角色

DROP ROLE TEMPROLE;

腳本:droprole.sql,確認對話框見圖。

最佳實踐

  • 遵循最小權限原則:自定義角色替代 DBA/RESOURCE 直接授予用戶。
  • 角色嵌套簡化授權維護:業務角色 → 包含權限角色 → 分配給用戶。
  • 變更前導出腳本備份,支持回滾與審計。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved