本文記錄 Oracle 9i 在 Windows 平台啟用作業系統認證(NTS)的關鍵參數設定,含 sqlnet.ora、remote_login_passwordfile 與密碼檔管理。
1. sqlnet.ora 設定啟用 NTS
# D:\Oracle\ora90\NETWORK\ADMIN\sqlnet.ora
NAMES.DEFAULT_DOMAIN = nova.net
SQLNET.AUTHENTICATION_SERVICES = (NTS)
NAMES.DIRECTORY_PATH = (TNSNAMES, HOSTNAME, ONAMES)
SQLNET.AUTHENTICATION_SERVICES=(NTS):啟用 Windows 原生認證(Kerberos/NTLM),允許 OS 使用者直接以 CONNECT / AS SYSDBA 登入
NAMES.DIRECTORY_PATH:解析順序優先 TNSNAMES
2. remote_login_passwordfile 參數
| 值 | 說明 |
NONE | 忽略密碼檔,僅允許 OS 認證(預設) |
EXCLUSIVE | 使用專屬密碼檔,支援 SYS/INTERNAL 等特權使用者遠端登入 |
SHARED | 多資料庫共享密碼檔,僅限 SYS/INTERNAL |
啟用 NTS 時通常設為 NONE,依賴 OS 驗證;若需遠端 SYSDBA 連線(如 Data Guard、RMAN),設為 EXCLUSIVE 並建立密碼檔:
orapwd file=D:\Oracle\ora90\database\PWDORCL.ora password=sys_password entries=5
3. Windows 使用者群組對應
ORA_DBA 群組成員 → 自動擁有 SYSDBA 權限
ORA_OPER 群組成員 → 自動擁有 SYSOPER 權限
- 在「電腦管理」→「本機使用者和群組」加入網域/本機使用者
4. 常見問題排查
- ORA-01031 insufficient privileges:確認使用者在
ORA_DBA 群組、重新登入 Windows 刷新 Token
- 遠端 SYSDBA 失敗:
remote_login_passwordfile=EXCLUSIVE + 密碼檔存在 + 密碼正確
- NTS 衝突:若同時設定
SQLNET.AUTHENTICATION_SERVICES=(NTS, NONE) 會導致不確定行為,請單一指定
結語
Windows 上 Oracle 採用 NTS 是最安全、最便利的認證方式:無密碼管理、符合企業單一登入、支援稽核追蹤。生產環境建議:NTS + EXCLUSIVE 密碼檔(備用) 組合。
- 上一篇文章: MySQL Win32 版與 Unix 版關鍵差異:執行緒、大小寫、路徑、命名管道詳解
- 下一篇文章: Linux 下 Java 連接 MySQL 快速構建:JDBC 驅動安裝、CLASSPATH、權限授權完整步驟
Copyright ©
程式碼之家 All Rights Reserved