首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 使用者、Schema 與權限分類深度解析

     編輯:Oracle 資料庫基礎

釐清 User、Schema 關係與系統/物件權限差異,是 Oracle 安全架構設計的基石。本文透過定義對比、實例說明、視圖查詢,建立完整權限認知框架。

核心概念釐清

術語定義關鍵點
User連線資料庫、存取物件的身分認證主體
Schema物件邏輯容器(Table, View, Index...)User 建立時同名建立 Schema,一對一對應
關係User = Schema 別名(通俗理解)物件完整名稱 = SCHEMA.OBJECT,非 USER.OBJECT

預設 Schema 行為

  • 查詢 SELECT * FROM emp 實為 SELECT * FROM scott.emp(若登入 scott)。
  • 建立物件未指定 Schema 時,存入預設 Schema(= 登入 User)。
  • 可透過 ALTER SESSION SET CURRENT_SCHEMA = other_user 切換預設 Schema。

權限分類對比

維度系統權限物件權限
範圍全資料庫級特定物件級
範例CREATE TABLE, SELECT ANY TABLESELECT ON scott.emp
授予語法GRANT priv TO user/roleGRANT priv ON obj TO user/role
查詢視圖DBA_SYS_PRIVSUSER_TAB_PRIVS

角色:權限集合管理

CREATE ROLE testrole;                    -- 無密碼
CREATE ROLE testrole IDENTIFIED BY pwd;  -- 需密碼啟用
ALTER ROLE testrole IDENTIFIED BY newpwd;-- 修改密碼
GRANT CREATE TABLE TO testrole;          -- 授權給角色
GRANT testrole TO user1;                 -- 角色授予使用者

實務建議

  1. 遵循最小權限原則:僅授予業務必要的系統/物件權限。
  2. 善用角色分層:READ_ONLY, DEVELOPER, DBA_ROLE 等。
  3. 定期稽核 DBA_SYS_PRIVS, DBA_TAB_PRIVS, DBA_ROLE_PRIVS。
  4. 區分 WITH ADMIN OPTION(系統/角色可轉授)與 WITH GRANT OPTION(物件可轉授)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved