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