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
Copyright (c) 1982, 2010, Oracle.? All rights reserved.
ERROR:
ORA-01031:權限不足
請輸入用戶名:
ERROR:
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
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 options
SQL>
查看v$pwfile_users
SQL> select * from v$pwfile_users;
USERNAME???????????? SYSDBA???? SYSOPER??? SYSASM
-------------------- ---------- ---------- ----------
SYS????????????????? TRUE?????? TRUE?????? FALSE
SQL>
給用戶賦予sysdba權限
SQL> grant sysdba to imuse01;
授權成功。
SQL> select * from v$pwfile_users;
USERNAME???????????? SYSDBA???? SYSOPER??? SYSASM
-------------------- ---------- ---------- ----------
SYS????????????????? TRUE?????? TRUE?????? FALSE
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> show user;
User is "SYS"
SQL> connect sys/bbb as sysdba 
已連接。 
SQL> show user;
User is "SYS"
SQL> connect aaa/bbb as sysdba 
已連接。 
SQL> show user;
User is "SYS"
SQL> select * from v$pwfile_users; 
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口令,如:
SQL> connect /as sysdba 
ERROR: 
ORA-01031: 權限不足 
SQL> connect sys/aaa as sysdba 
ERROR: 
ORA-01017: 用戶名/口令無效; 登錄被拒絕 
SQL> connect aaa/bbb as sysdba 
ERROR: 
ORA-01031: 權限不足 
SQL> connect sys/system as sysdba 
已連接。 
SQL> 
?
總結
以上是生活随笔為你收集整理的Oracle中的两种验证方式:操作系统验证和密码文件验证,通过操作系统验证的方式解决客户端登录不了数据的问题的全部內容,希望文章能夠幫你解決所遇到的問題。