天天看點

Oracle中的兩種驗證方式:作業系統驗證和密碼檔案驗證

oracle驗證兩種方式,作業系統驗證,密碼檔案驗證

啟動密碼檔案驗證

如果資料庫登入方式是作業系統驗證sys登入不需要使用者名和密碼就可以登入

c:\documents and settings\wwang>sqlplus dfsdljfsdljf/jsljfls as sysdba

sql*plus: release 11.2.0.1.0 production on星期一 6月 11 22:28:09 2012

copyright (c) 1982, 2010, oracle.  all rights reserved.

連接配接到:

oracle database 11g enterprise edition release 11.2.0.1.0 - production

with the partitioning, olap, data mining and real application testing option

sql>

1.  建立密碼驗證檔案

c:\documents and settings\wwang>orapwd file=d:\app\wwang\product\11.2.0\dbhome_1\database\pwdmdsp.ora entries=3

force=y password=oracle;

2.  修改初始化參數remote_login_passwordfile= exclusive

此參數有三個exclusive啟用(單執行個體多使用者)none表示禁用 shared啟用(rac多執行個體單使用者)

3.  修改sqlnet.ora中sqlnet.authentication_services = (none)

4.  再次使用sqlplus / as sysdba登入

c:\documents and settings\wwang>sqlplus / as sysdba

sql*plus: release 11.2.0.1.0 production on星期一 6月 11 22:48:56 2012

error:

ora-01031:權限不足

請輸入使用者名:

ora-01017:使用者名/密碼無效;登入被拒絕

登入不輸入使用者名密碼登入不上

隻用輸入正确的使用者名密碼才能登入

c:\documents and settings\wwang>sqlplus sys/oracle; as sysdba

sql*plus: release 11.2.0.1.0 production on星期一 6月 11 22:52:32 2012

with the partitioning, olap, data mining and real application testing options

檢視v$pwfile_users

sql> select * from v$pwfile_users;

username             sysdba     sysoper    sysasm

-------------------- ---------- ---------- ----------

sys                  true       true       false

給使用者賦予sysdba權限

sql> grant sysdba to imuse01;

授權成功。

imuse01              true       false      false

因為建立密碼檔案entries=3隻能在給3個使用者賦sysdba權限(以4個位機關)

5.  如果要禁用密碼檔案驗證修改sqlnet.ora中sqlnet.authentication_services = (nts)

 oracle 驗證機制 -- 解決剛建立資料庫後未賦權建立使用者以dba登入問題

首先稍微解釋下os認證:

oracle安裝之後預設景象下是啟用了os認證的,這裡提到的os認證是指辦事器端os認證。os認證的意思把登入資料庫的使用者和密碼校驗放在了操縱系同一級。若是以安裝oracle時的使用者登入os,那麼此時在登入oracle資料庫時不須要任何驗證,如:

sql> connect /as sysdba

已連接配接。

sql> show user;

user is "sys"

sql> connect sys/aaa@dmt as sysdba

sql> connect sys/bbb as sysdba

sql> connect aaa/bbb as sysdba

username                       sysdba sysoper

------------------------------ ------ -------

sys                            true   true

非論輸入什麼使用者(哪怕這個使用者如aaa在資料庫中底子不存在),隻要以sysdba權限連接配接資料庫,都可以連接配接上,并且連接配接使用者是sys,有時侯,若是忘記了資料庫的密碼,而又想登入資料庫,可以經由過程這種驗證格式,前提是在資料庫辦事器上;然而便利的同時也帶來了一些安然隐患,于是很多人想脫離os認證,在win下隻要把oracle_home/network/admin/sqlnet.ora中的sqlnet.authentication_services= (nts)中的nts改成none或者注釋掉這句話(在前面加上#),就可以脫離os功能,要想以sys使用者連上資料庫必須輸入正确的sys密碼,如:

ora-01031: 權限不足

sql> connect sys/aaa as sysdba

ora-01017: 使用者名/密碼無效; 登入被拒絕

sql> connect sys/system as sysdba