一、Oracle的權限驗證方式:
?
??? Oracle
的驗證方式取決于三個屬性:
??? *
SQLNET.ORA參數文件中的參數SQLNET.AUTHENTICATION_SERVICES設置
??? *
PFILE(SPFILE)參數文件中的參數REMOTE_LOGIN_PASSWORDFILE設置
??? *
口令文件orapw$SID(Linux) | PWD$SID.ora(Windows)
?
???
Oracle權限認證的基本順序是這樣的:先由SQLNET.AUTHENTICATION_SERVICES的設置值來決定是使用OS認證還是口令文件認證,如果使用口令文件認證的話就要看后面兩個條件了:如果REMOTE_LOGIN_PASSWORDFILE參數設置為非NONE而且口令文件存在的話就能正常使用口令文件認證,否則將會失敗。
?
?????
?
???
1
、
OS
驗證
?????
①
為用戶創建操作系統帳號
?????
②
講用戶添加到
Oracle
安裝時定義的組中(安裝介質時創建)
?????
③
設置REMOTE_LOGIN_PASSWORDFILE為
NONE
?
????? SQL> CONN / AS SYSDBA
????? SQL> CONN / AS SYSOPER
?
???
2
、密碼文件驗證
?????
①
為用戶創建操作系統帳號
?????
②
創建密碼文件:
ORAPWD FILE=file_name PASSWORD=password ENTRIES=max_users
?????
③
將REMOTE_LOGIN_PASSWORDFILE設為
EXCLUSIVE
?????
④
以
SYS
用戶登陸,創建用戶,并
GRANT SYSDBA to scott
?????
* GRANT SYSDBA
語句即將用戶加入密碼文件中
?
????? SQL> CONN scott/password AS SYSDBA
?
???
詳細的情況參見:
http://www.lansz.com/html/2008/06/oracle_os_pwfile_authentication.html
?
二、密碼文件管理
?
???
1
、創建:
?
????? ORAPWD FILE=file_name PASSWORD=password ENTRIES=max_users
?
????? FILE
:指定完整路徑名的文件,經過加密無法直接讀取。
RAC
中多個實例必須指向一個密碼文件。
????? PASSWORD
:
SYS
用戶密碼,使用
ALTER
修改
SYS
密碼時,密碼文件中隨之修改。
????? ENTRIES
:密碼文件可以接受的登陸個數,通常是
4
的倍數,可以超出,但最好有多。
?
???
2
、REMOTE_LOGIN_PASSWORDFILE:
?
????? NONE
:默認值,結果是返回密碼文件不存在的結果。
????? EXCLUSIVE
:密碼文件只能用于一個數據庫,可以講
SYSDBA/SYSOPER
權限授予個人用戶
????? SHARED
:可用于多個數據庫,但只能針對
SYS
用戶
(
用于一個管理員管理多個數據庫時
)
?
???
3
、密碼文件用戶查看
?
?????
select
*
from
v$pwfile_users;
?
???
4
、增加密碼文件的用戶數目:
?
????? *
查找v$pwfile_users中的密碼文件數目
????? *
關閉數據庫
????? *
刪除現有密碼文件
????? *
用
ORAPWD
重新創建密碼文件,將
ENTRIES
設置得大一點
????? *
重新將密碼文件用戶添加進去
?????
*
注意刪除和重新建立之后必須重新添加,因為時間標記和校驗不同
?
?