| 用戶 | 默認密碼 | 權限 | 首要動作 |
| SYS | CHANGE_ON_INSTALL | SYSDBA | 修改強密碼,禁用遠程OS認證 |
| SYSTEM | MANAGER | SYSDBA | 修改強密碼,日常管理使用 |
標準業務用戶創建腳本
-- 1. 創建專用表空間(若不存在)
CREATE TABLESPACE app_data
DATAFILE '/u01/oradata/PROD/app_data01.dbf' SIZE 1G AUTOEXTEND ON NEXT 100M MAXSIZE 50G
EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO;
CREATE TEMPORARY TABLESPACE app_temp
TEMPFILE '/u01/oradata/PROD/app_temp01.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M MAXSIZE 10G;
-- 2. 創建用戶(指定默認/臨時表空間,避免佔用SYSTEM)
CREATE USER app_user IDENTIFIED BY "AppUs3r_Str0ngP@ss"
DEFAULT TABLESPACE app_data
TEMPORARY TABLESPACE app_temp
QUOTA UNLIMITED ON app_data;
-- 3. 授予標準角色(最小權限原則)
GRANT CREATE SESSION TO app_user; -- 連接權限
GRANT CREATE TABLE, CREATE VIEW, CREATE SEQUENCE, CREATE PROCEDURE TO app_user;
GRANT CREATE TRIGGER, CREATE SYNONYM TO app_user;
-- 按需授予:GRANT UNLIMITED TABLESPACE TO app_user; -- 跨表空間建表
-- 4. 禁止直接授予 DBA/RESOURCE/CONNECT(舊版角色權限過大)
-- RESOURCE 包含 UNLIMITED TABLESPACE,易導致誤佔SYSTEM表空間
-- 5. 提交
COMMIT;
使用腳本部署Schema對象
-- 以業務用戶登錄
$ sqlplus app_user/AppUs3r_Str0ngP@ss@PROD
-- 執行DDL腳本
SQL> @create_schema_objects.sql
-- 優勢:對象擁有者明確,無SYS/SYSTEM殘留對象,權限邊界清晰
權限回收與用戶刪除
-- 回收特定權限
REVOKE CREATE PROCEDURE FROM app_user;
-- 刪除用戶及其所有對象(謹慎)
DROP USER app_user CASCADE;
自動化交付清單
- 參數文件
initPROD.ora / spfilePROD.ora
- 表空間創建腳本
create_tablespaces.sql
- 用戶創建腳本
create_users.sql
- 權限授予腳本
grant_privs.sql
- Schema部署腳本
deploy_schema.sql
- 驗證腳本
verify_deployment.sql
總結
用戶權限管理核心:專用表空間隔離 → 最小權限授予 → 拒絕DBA角色濫用 → 腳本化交付 → 版本控制。將上述腳本納入Git管理,每次變更走Pull Request審批,實現權限變更可追溯、可回滾、可審計。
- 上一篇文章: 六步掌握Oracle表空間狀態管理:查詢、切換、遷移、轉換、刪除與驗證
- 下一篇文章: Oracle用戶權限與角色管理深度解析:系統權限、對象權限、角色體系與實戰授權
Copyright ©
程式碼之家 All Rights Reserved