CREATE PROFILE profile_name LIMIT
FAILED_LOGIN_ATTEMPTS 5 -- 登入失敗鎖定次數
PASSWORD_LOCK_TIME 1 -- 鎖定天數
PASSWORD_LIFE_TIME 90 -- 密碼有效天數
PASSWORD_REUSE_TIME 365 -- 密碼重複使用間隔天數
PASSWORD_REUSE_MAX 10 -- 重複使用前需更換次數
SESSIONS_PER_USER 10 -- 單用戶並發會話上限
CPU_PER_SESSION 10000 -- 會話 CPU 限制(百分之一秒)
CPU_PER_CALL 1000 -- 單次呼叫 CPU 限制
CONNECT_TIME 60 -- 會話總連線時間(分鐘)
IDLE_TIME 30; -- 會話閒置時間(分鐘)
DROP ROLE ICDYW;
CREATE ROLE ICDYW NOT IDENTIFIED;
GRANT "DBA" TO "ICDYW";
GRANT "EXP_FULL_DATABASE" TO "ICDYW";
GRANT "IMP_FULL_DATABASE" TO "ICDYW";
DROP USER ICDMAIN CASCADE;
CREATE USER ICDMAIN IDENTIFIED BY icd
DEFAULT TABLESPACE SERVICE_RPT_DAT
TEMPORARY TABLESPACE SERVICE_TEMP
PROFILE DEFAULT;
GRANT "ICDYW" TO "ICDMAIN" WITH ADMIN OPTION;
GRANT UNLIMITED TABLESPACE TO "ICDMAIN" WITH ADMIN OPTION;
GRANT SELECT ON SYS.V_$MYSTAT TO ICDMAIN;
GRANT SELECT ON SYS.V_$SESSION TO ICDMAIN;
GRANT SELECT ON SYS.DBA_JOBS TO ICDMAIN;
ALTER USER ICDMAIN DEFAULT ROLE ALL;
ALTER USER username
IDENTIFIED BY new_password
DEFAULT TABLESPACE new_ts
TEMPORARY TABLESPACE new_temp_ts
PROFILE new_profile
QUOTA 100M ON ts_name;
-- 帳號鎖定/解鎖
ALTER USER username ACCOUNT LOCK;
ALTER USER username ACCOUNT UNLOCK;
-- 強制下次登入修改密碼
ALTER USER username PASSWORD EXPIRE;
-- 無物件
DROP USER username;
-- 有物件(級聯刪除)
DROP USER username CASCADE;
當前連線中的用戶無法刪除。 CASCADE會立即移除物件,建議同步清理資料檔(ASM 或檔案系統層面)。
SELECT username, machine, sid, serial#
FROM v$session;
ALTER SYSTEM KILL SESSION 'sid,serial#';
SELECT user_name, sql_text
FROM v$open_cursor;
掌握 Profile 策略、用戶生命週期指令、會話監控三大塊,即能應對 90% 的日常用戶管理場景。建議將常用腳本封裝為 Shell/Python 自動化工具,提升運維效率與一致性。