ORA_DBA 群組(Windows)或 dba 群組(Linux/Unix)。
C:\> sqlplus /nolog
SQL> CONN / AS SYSDBA
Connected.
原理:OS 認證(SQLNET.AUTHENTICATION_SERVICES = (NTS)),驗證 OS 使用者是否在 DBA 群組,通過即授予 SYSDBA 權限,**不需資料庫密碼**。
SQL> ALTER USER scott IDENTIFIED BY new_password;
User altered.
ALTER USER scott ACCOUNT UNLOCK;
SQL> CREATE USER scott IDENTIFIED BY new_password
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA UNLIMITED ON users;
SQL> GRANT CONNECT, RESOURCE, DBA TO scott; -- 視需求授權
-- 角色授予
GRANT CONNECT, RESOURCE TO scott;
GRANT DBA TO scott; -- 生產環境嚴禁
-- 系統權限
GRANT CREATE TABLE, CREATE VIEW, CREATE PROCEDURE TO scott;
-- 物件權限
GRANT SELECT, INSERT ON hr.employees TO scott;
-- 切換至 PDB
SQL> ALTER SESSION SET CONTAINER = pdb1;
-- 再執行 ALTER/CREATE USER
或使用 CONTAINER=ALL 在 CDB$ROOT 建立通用用戶(C## 前綴)。
AUDIT_SYS_OPERATIONS=TRUE、AUDIT_TRAIL=DB,EXTENDED,記錄所有 SYSDBA 操作。PASSWORD_VERIFY_FUNCTION 強制策略。Oracle 密碼遺忘**不是資料庫故障,而是 OS 層面的授權恢復**。掌握 CONN / AS SYSDBA → ALTER USER(優先)或 CREATE USER(次之)兩步驟,配合帳號解鎖、權限授予,即可在 1 分鐘內恢復存取。切記:保護 OS 登入才是根本防線。