Oracle 11g 起預設鎖定 SCOTT 範例帳號 (密碼 TIGER)。本文提供標準解鎖、重設密碼、授權、驗證流程,並說明 12c/18c/19c/21c 多租戶架構 (CDB/PDB) 下的操作差異。
sqlplus / as sysdba
-- 或
sqlplus system/password
-- 或具備 DBA 角色的應用管理帳號
SQL> ALTER USER scott ACCOUNT UNLOCK;
User altered.
SQL> ALTER USER scott IDENTIFIED BY "Sc0tt#Pass2024";
User altered.
注意:11g+ 預設啟用密碼複雜度驗證函數 (VERIFY_FUNCTION_11G),密碼需滿足長度、大小寫、數字、特殊字元要求。
SQL> GRANT CONNECT, RESOURCE TO scott;
-- 若需建立視圖/程序/同義詞
SQL> GRANT CREATE VIEW, CREATE PROCEDURE, CREATE SYNONYM TO scott;
-- 若需無限表空間配額
SQL> ALTER USER scott QUOTA UNLIMITED ON users;
SQL> CONNECT scott/"Sc0tt#Pass2024"
Connected.
SQL> SELECT * FROM tab; -- 查看 SCOTT 範例表 (EMP, DEPT, BONUS, SALGRADE)
-- 若表不存在,執行 @?/rdbms/admin/scott.sql (需先解鎖 SCOTT 並授權)
SCOTT 通常建立在 **PDB** 中 (而非 CDB$ROOT)。
-- 1. 連線至 CDB$ROOT
sqlplus / as sysdba
-- 2. 切換至目標 PDB
SQL> ALTER SESSION SET CONTAINER = ORCLPDB;
-- 3. 執行解鎖與授權 (同上)
SQL> ALTER USER scott ACCOUNT UNLOCK;
SQL> ALTER USER scott IDENTIFIED BY "Sc0tt#Pass2024";
SQL> GRANT CONNECT, RESOURCE TO scott;
SQL> ALTER USER scott QUOTA UNLIMITED ON users;
-- 在目標 PDB 中執行標準建立腳本
SQL> ALTER SESSION SET CONTAINER = ORCLPDB;
SQL> @?/rdbms/admin/scott.sql
-- 腳本會建立 SCOTT/TIGER 並授權,建議緊接著修改密碼
SQL> ALTER USER scott IDENTIFIED BY "Sc0tt#Pass2024" ACCOUNT UNLOCK;
同場景 A,但需確認應用根容器中是否已定義 SCOTT 共用使用者 (罕見)。
| 現象 | 原因 | 解決 |
|---|---|---|
| ORA-28000: the account is locked | 帳號鎖定 | ALTER USER scott ACCOUNT UNLOCK; |
| ORA-01017: invalid username/password | 密碼錯誤 (大小寫敏感 11g+) | 確認密碼大小寫;重設密碼 ALTER USER scott IDENTIFIED BY "NewPass"; |
| ORA-28001: the password has expired | 密碼過期 (Profile 限制) | ALTER USER scott IDENTIFIED BY "NewPass" PASSWORD EXPIRE; 然後登入修改 |
| ORA-01950: no privileges on tablespace 'USERS' | 無配額 | ALTER USER scott QUOTA UNLIMITED ON users; 或指定額度 |
| ORA-65096: invalid common user or role name | 在 CDB$ROOT 嘗試建立/操作非 C## 開頭的一般使用者 | 切換至 PDB: ALTER SESSION SET CONTAINER = pdb_name; |
ALTER USER scott ACCOUNT LOCK; REVOKE CONNECT, RESOURCE FROM scott;TRAINING_PDB) 隔離風險。PASSWORD_VERIFY_FUNCTION) 並設定 PASSWORD_LIFE_TIME, PASSWORD_GRACE_TIME。AUDIT SELECT, INSERT, UPDATE, DELETE ON scott.emp BY ACCESS;