資料庫的身份驗證方式
資料庫的身份驗證方式[@more@]
個人認為有3種:os認證、口令檔案驗證和資料字典驗證
os和口令檔案驗證透過sqlnet.ora檔案中的引數SQLNET.AUTHENTICATION_SERVICES,PFILE(或SPFILE)檔案中的引數
REMOTE_LOGIN_PASSWORDFILE和口令檔案PWDsid.ora三者協同作用實現身份認證,具體如下:
1、輔助知識
SQLNET.AUTHENTICATION_SERVICES=(NTS)|(NONE)
SQLNET.AUTHENTICATION_SERVICES=(NTS): 作業系統認證方式,不使用口令檔案
SQLNET.AUTHENTICATION_SERVICES=(NONE):口令檔案認證方式
REMOTE_LOGIN_PASSWORDFILE=('NONE')|('EXCLUSIVE')|('SHARED')
REMOTE_LOGIN_PASSWORDFILE=('NONE'):不使用口令檔案,作業系統認證
REMOTE_LOGIN_PASSWORDFILE=('EXCLUSIVE'):口令檔案認證方式,但只有一個資料庫例項可以使用此檔案,
系統允許將SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他使用者,且以具有這類身份的其他使用者登入是有效的
REMOTE_LOGIN_PASSWORDFILE=('SHARED'):口令檔案認證方式,可有多個資料庫例項使用此檔案,但是此設定下
只有INTERNAL/SYS帳號能被識別,即使檔案中存有其他使用者的資訊,也不允許他們以SYSOPER/SYSDBA登入
注意:8i以後逐漸棄用了INTERNAL帳號
2、SQLNET.AUTHENTICATION_SERVICES=(NTS)同時REMOTE_LOGIN_PASSWORDFILE=('NONE'),此時為作業系統
認證方式。
sqlplus /nolog
sql>conn /as sysdba
或
sqlplus /nolog
sql>conn 任意使用者名稱/密碼 as sysdba
或
sqlplus "/ as sysdba"
均可以sysdba身份登入成功,進行資料庫方面的操作;但是不能在遠端使用上述命令,而且遠端即時用sqlplus "使用者名稱/密碼 as sysdba"也無法登入,因此這種方式只能本地登入
注意:安裝oracle時會自動建立一個ora_dba的使用者組,只有以此使用者組下的使用者登入系統,上述才可能有效
3、SQLNET.AUTHENTICATION_SERVICES=(NONE)同時REMOTE_LOGIN_PASSWORDFILE=('EXCLUSIVE')或('SHARED'),配合口令檔案PWDsid.ora,此時為口令檔案認證方式
當在本地以ora_dba組下的使用者登入進入windows2000後進行下邊的操作:
sqlplus /nolog
sql>conn /as sysdba
系統提示錯誤,實質上是要求提供擁有sysdba身份的使用者名稱和密碼
在本地或遠端進行下邊的操作
sqlplus "sys/密碼@服務名 as sysdba"
可進入系統,也就是說口令檔案認證方式允許使用者從本地或遠端以sysdba身份登入,但必須提供口令
4、SQLNET.AUTHENTICATION_SERVICES=(NTS)同時REMOTE_LOGIN_PASSWORDFILE=('EXCLUSIVE')或('SHARED'),配合口令檔案PWDsid.ora,此時作業系統認證和口令檔案認證同時起作用
5、可以對普通使用者進行sysdba或sysoper的授權
grant sysdba to 使用者名稱
這樣,其他具有sysdba身份的使用者就加入到PWDsid.ora檔案中,此檔案是一個二進位制檔案,我們可以用如下方式查詢是否擁有sysdba或sysoper許可權:
select * from v$pwfile_users
假如授sysdba許可權給scott.
如果用conn scott/tiger進行登陸,則採用資料字典對使用者進行驗證。
如果用conn scott/tiger as sysdba進行登陸,則採用密碼檔案進行驗證。sysdba使用者的密碼是存放在pwd檔案中的。此外,如果用數字字典驗證的方式登陸並修改密碼,相應的密碼會resync到密碼檔案中。也就是說資料字典中的密碼會和密碼檔案的同步。
注意:
普通使用者有sysdba許可權時,進入後執行show user,顯示為sys;有sysoper許可權時,進入後執行show user,顯示為public
普通使用者有此許可權時,當更改此使用者的口令時,同時更改口令檔案的內容也同時修改相關資料字典的內容,即口令同步
6、資料字典驗證
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/653579/viewspace-893443/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 1.6.3. 資料庫管理員身份驗證方法資料庫
- 中國身份證號驗證庫
- 1.6.3.1. 關於資料庫管理員身份驗證方法資料庫
- 2.4.4 Step 3: 選擇資料庫管理員的身份驗證方法資料庫
- 身份證號碼校驗位的計算方式
- Oracle的身份驗證Oracle
- 資料庫學習:查詢新身份證(18位)的校驗位(轉)資料庫
- vagrant啟動身份驗證失敗的解決方式
- javascript 驗證身份證JavaScript
- WEB身份驗證Web
- 身份證驗證工具類
- 使用Oracle外部身份認證登入資料庫Oracle資料庫
- JS驗證身份證的合法性JS
- PHP 驗證身份證號碼PHP
- C++身份證號驗證C++
- C#驗證身份證號C#
- 靜態密碼已經”OUT”探索身份驗證新方式密碼
- Asp.Net WEBAPI 增加身份驗證 (OAUTH 2.0方式)ASP.NETWebAPIOAuth
- C++身份核驗介面程式碼、身份證OCR、身份證實名認證APIC++API
- 作業系統身份驗證和口令檔案身份驗證總結作業系統
- js正則驗證身份證號JS
- PHP 身份證精確匹配驗證PHP
- 身份證號碼驗證系統
- 身份證號碼之js驗證JS
- oracle常見身份驗證Oracle
- php與js方式驗證手機號碼和郵件地址的合法性,js驗證身份證號碼PHPJS
- 關於Java Mail的身份驗證!JavaAI
- 從資料庫中修改zabbix的驗證方式 0 內建 1 LDAP 2 HTTP資料庫LDAHTTP
- Ext實現的身份證格式驗證程式碼
- Python Schema一種優雅的資料驗證方式Python
- java 實現從15位~18位的身份證號碼轉換,校驗中國大陸公民身份證、香港居民身份證、澳門身份證和臺灣身份證。Java
- Oracle的驗證方式Oracle
- 身份證號碼驗證演算法演算法
- js實現身份證號碼驗證JS
- jQuery正則驗證15/18身份證jQuery
- asp.core 同時相容JWT身份驗證和Cookies 身份驗證兩種模式JWTCookie模式
- 騰訊資料庫tdsql部署與驗證資料庫SQL
- 如何驗證Oracle資料庫中表的型別Oracle資料庫型別