oracle口令檔案中存放sysdba/sysoper使用者的使用者名稱及口令,允許使用者通過口令檔案驗證。
本文包括以下四部分:
1、使用orapwd建立口令檔案
2、介紹口令檔案的三種狀態
3、在口令檔案中新增使用者
4、維護口令檔案
5、密碼認證
1.使用orapwd建立口令檔案
什麼時候需要建立口令檔案?:口令檔案損壞、口令檔案丟失、需要修改超級使用者口令時
orapwd的語法為:
orapwd file=password=entries=force=
file:口令檔名稱。
在unix/linux平台上,口令檔名稱為orapworacle_sid ,存放路徑為oracle_home/dbs;在windows平台上,口令檔名稱為pwdoralce_sid.ora,存放路徑為oracle_home/database。
password:sys使用者的密碼。用sys登陸資料庫,如果以alter user命令修改sys使用者的口令,會自動更新資料字典和口令檔案中sys使用者的口令。
注:當remote_login_passwordfile=shared,是不允許修改sys使用者密碼的。
entries:檔案允許存放特權使用者的最大數量。
注:oracle口令檔案的小大是按存放4個特權使用者大小的整數倍建立和擴充套件的。例如口令檔案由系統自動建立時,大小是1536位元組,除sys外,可以存放4個特權使用者,占用512位元組,而其他1024位元組,存放sys使用者以及其它資訊。當entries=5時,被建立的口令檔案大小是2048,可以存放8個特權使用者,而不是5個特權使用者。所以擴充套件口令檔案存放特權使用者數時,最好是以4的倍數指定。
force:是否允許覆蓋已存在的口令檔案,這個引數在10g中才出現的。
2.介紹口令檔案的三種狀態
口令檔案的狀態由remote_login_passwordfile引數指定,該引數是靜態引數,改變狀態後需要重啟例項生效。詳細格式為:
remote_login_passwordfile=(none)|(exclusive)|(shared)
none:不使用口令檔案
exclusive:使用口令檔案,但只能乙個資料庫例項使用,這是oarcle預設的方式。
shared:使用口令檔案,多個資料庫例項共享使用,只能識別sys使用者。另外這種狀態下不允許修改sys使用者密碼,也不允許新增別的特權使用者。
3.在口令檔案中新增別的使用者
a.設定remote_login_passwordfile=exclusive
b.賦予使用者sysdba特權:grant sysdba to username
c.收回使用者sysdba特權:revoke sysdba from username
4.維護口令檔案
(1)口令檔案已滿
這時需要重建使用者數大的口令檔案。具體步驟如下:
a.檢視v$pwfile_users試圖中,記錄下有哪些特權使用者。
b.刪除口令檔案,或者在10g中,指定force=y,允許覆蓋已存在的口令檔案。
c.建立entries的值比較合理的口令檔案。
d.將原來擁有特權的使用者,再次賦予特權,並新增新的特權使用者。
(2)刪除口令檔案
如果不需要口令檔案驗證使用者資訊,這時把remote_login_passwordfile的值設定為none,並刪除口令檔案。這時oracle不允許遠端通過sysdba或sysoper身份登陸。
5、密碼認證:
什麼是dba認證 具有sysdba----對應的是sys使用者-----root, sysoper對應的是 system使用者-----許可權稍小. 許可權的使用者就叫dba許可權
sys許可權最大,屬於sysdba sysoper兩個許可權。system只屬於sysoper.
身份認證的方式:
a、使用與作業系統整合的身份認證 使用者oracle屬於dba組就具有管理組許可權,sqlplus "/as sysdba"就可以直接登入到資料庫。
b、使用oracle資料庫的密碼檔案進行身份認證。
c、決定密碼檔案認證還是作業系統認證 引數檔案remote_login_passwordfile=none| exclusive |shared
sql> show parameter remote_login_passwordfile
none 表示不使用密碼檔案認證,
exclusinve 預設 表示要進行密碼檔案認證 自己獨佔使用 指示只有乙個資料庫例項可以使用此密碼檔案。
只有在此設定下的密碼檔案可以包含有除internal/sys以外的使用者資訊,即允許將系統許可權sysoper/sysdba授予除internal/sys以外的其他使用者
shared 表示也要密碼檔案認證,不同的例項dba使用者可以共享密碼檔案 用於特殊情況下,比如:asm下。
指可有多個資料庫例項可以使用此密碼檔案。在此設定下只有internal/sys帳號能被密碼檔案識別,即使檔案中存有其他使用者的資訊,
也不允許他們以sysoper/sysdba的許可權登入。此設定為預設值。
sql>alter system set remote_login_passwordfile=shared scope=spfile;
sql>startup force;
sql>show parameter pass;
d、另外乙個檔案 $oracle_home/network/admin/sqlnet.ora 新增下面:
sqlnet.authenication_services=none | all | nts
none關閉os認證,只能用密碼檔案認證
all 用於linux/unix系統,關閉本機密碼檔案認證,採用作業系統認證,但遠端(異機)可以密碼檔案認證
nts主要用於windows系統
oracle口令檔案認證和作業系統認證
1 使用作業系統驗證 2個前提必須同時滿足 1 os下建立使用者ora dba使用者組,然後可以新建立使用者或者把原來的使用者加入到ora dba組中,然後使用這個使用者在安裝了資料庫的本地機器登陸或者使用安全的遠端連線登陸,可以作為sysdba登入,在資料庫級不需要提供密碼。2 sqlnet.or...
oracle口令檔案
在資料庫未啟動之前,如果在本地則可以通過作業系統認證來啟動資料庫。但是如果不在本地的話,就得通過口令檔案驗證來啟動資料庫。1 oracle口令檔案的建立 orapwd file password entries force nosysdba 說明file 建立的密碼檔案 password 建立的口令...
Oracle的口令檔案
oracle的口令檔案的作用是存放所有以sysdba或者sysoper許可權連線資料庫的使用者的口令,如果想以sysdba許可權遠端連線資料庫,必須使用口令檔案,否則不能連上,由於sys使用者在連線資料庫時必須以sysdba or sysoper方式,也就是說sys使用者要想連線資料庫必須使用口令檔...