Oracle 採用「最小權限原則」保障數據安全。本文系統梳理用戶生命周期管理、系統權限、對象權限、角色體系、列級授權等核心知識,構建完整權限治理框架。
# 啟動監聽
lsnrctl start
# 啟動實例
oradim -startup -sid ORCL
| 用戶類型 | 連接命令 | 說明 |
|---|---|---|
| 普通用戶 | sqlplus username/password@service | 標準連接 |
| DBA (SYS) | sqlplus sys/password@service AS SYSDBA | 最高權限,可啟動/關閉庫 |
| OS 認證 DBA | sqlplus / AS SYSDBA | 屬於 ORA_DBA 組的 OS 用戶免密登錄 |
-- 1. 創建用戶(指定默認/臨時表空間、配額)
CREATE USER app_user IDENTIFIED BY strong_password
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA UNLIMITED ON users;
-- 2. 授予創建會話權限(登錄門檻)
GRANT CREATE SESSION TO app_user;
-- 3. 授予創建對象權限(表、視圖、序列等)
GRANT CREATE TABLE, CREATE VIEW, CREATE SEQUENCE, CREATE PROCEDURE TO app_user;
-- 4. 授予表空間使用配額(若創建時未指定 UNLIMITED)
ALTER USER app_user QUOTA UNLIMITED ON users;
-- 撤銷系統權限
REVOKE CREATE TABLE FROM app_user;
-- 撤銷對象權限
REVOKE SELECT ON scott.emp FROM app_user;
| 視圖 | 範圍 | 用途 |
|---|---|---|
| USER_SYS_PRIVS | 當前用戶 | 查看自身系統權限 |
| DBA_SYS_PRIVS | 全庫 | DBA 審計所有用戶系統權限 |
| USER_TAB_PRIVS | 當前用戶 | 自身擁有/授予的表權限 |
| ALL_TAB_PRIVS | 可訪問對象 | 當前用戶可見的所有表權限 |
| DBA_TAB_PRIVS | 全庫 | 全域對象權限審計 |
| USER_COL_PRIVS | 當前用戶 | 列級權限詳情 |
-- 單一權限
GRANT SELECT ON scott.emp TO hr_user;
-- 多權限組合
GRANT SELECT, INSERT, UPDATE, DELETE ON scott.emp TO hr_user;
-- ALL 權限(含 ALTER、INDEX、REFERENCES 等)
GRANT ALL ON scott.dept TO hr_user;
REVOKE UPDATE ON scott.emp FROM hr_user;
僅支持 SELECT、INSERT、UPDATE,不支持 DELETE
-- 授予特定列查詢權限
GRANT SELECT (empno, ename, deptno) ON scott.emp TO hr_user;
-- 授予特定列更新權限(薪資敏感列限制)
GRANT UPDATE (sal, comm) ON scott.emp TO payroll_user;
-- 查詢列權限
SELECT * FROM USER_COL_PRIVS WHERE TABLE_NAME = 'EMP';
-- 創建應用角色
CREATE ROLE app_read_only;
CREATE ROLE app_read_write;
-- 授予角色權限
GRANT SELECT ON scott.emp TO app_read_only;
GRANT SELECT, INSERT, UPDATE ON scott.emp TO app_read_write;
-- 用戶授予角色
GRANT app_read_only TO user1;
GRANT app_read_write TO user2;
GRANT SELECT ON scott.dept TO PUBLIC;
| 檢查項目 | 建議頻率 | 風險等級 |
|---|---|---|
| DBA 賬號是否僅限運維人員 | 月度 | 高 |
| 應用用戶是否僅擁有必要權限 | 季度 | 高 |
| PUBLIC 是否持有敏感對象權限 | 月度 | 高 |
| 離職人員賬號是否及時鎖定/刪除 | 實時 | 高 |
| 表空間配額是否合理限制 | 季度 | 中 |
| 列級權限是否用於敏感字段保護 | 半年 | 中 |
權限管理是資料庫安全的第一道防線。遵循「最小權限、角色分組、定期審計、列級保護」原則,建立標準化授權流程與審計機制,可有效防範數據洩露、誤操作與權限提升風險。