關於os認證和口令檔案認證
前言
發現有很多人提問資料庫身份認證方面的問題,基此就oracle的身份認證做個簡要解析,希望這篇文件對遇到類似問題的朋友有所裨益。
文中錯誤之處請大家指正,不足之處請大家補充!
環境
windows2000+sp4,oracle9.201
oracle軟體以oracle帳戶安裝
一、sysdba的許可權
sysdba(sysoper和normal)是登入資料庫的身份,與角色(dba、resource)、物件許可權及系統許可權有所區別,登入身份表明了
可對資料庫的整體進行哪些操作,sysdba有些類似unix下的root帳戶。
sysdba的許可權或可對資料庫進行的操作:
startup,shutdown
alter database open|mount
alter database backup controlfile
alter tablespace begin/end backup
recover database
alter database archivelog,restricted session
create database
recover database until
二、os認證和口令檔案認證
1、os認證和口令檔案認證其實質是對oracle資料庫採取何種管理方式,是本地管理還是透過一臺管理伺服器統一管理。
本地管理採用的就是os認證方式,統一管理採用的就是口令檔案認證方式
2、兩種認證的實現
oracle資料庫透過sqlnet.ora檔案中的引數SQLNET.AUTHENTICATION_SERVICES,PFILE(或SPFILE)檔案中的引數
REMOTE_LOGIN_PASSWORDFILE和口令檔案PWDsid.ora三者協同作用實現身份認證。
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登入
1)SQLNET.AUTHENTICATION_SERVICES=(NTS)同時REMOTE_LOGIN_PASSWORDFILE=('NONE'),此時為作業系統
認證方式。
當以oracle_dba組下的使用者登入進入本地windows2000後進行下邊的操作:
sqlplus /nolog
sql>conn /as sysdba
或
sqlplus /nolog
sql>conn 任意使用者名稱/密碼 as sysdba
均可以sysdba身份登入成功,進行資料庫方面的操作
當以遠端進行登入時,執行
sqlplus /nolog
sql>conn /as sysdba
或
sqlplus /nolog
sql>conn sys/密碼 as sysdba
均顯示
“ERROR:
ORA-01031: insufficient privileges
”
也就是不允許以sysdba身份遠端登入系統,這也是os認證之所以也稱為本地認證方式的原因
2)SQLNET.AUTHENTICATION_SERVICES=(NONE)同時REMOTE_LOGIN_PASSWORDFILE=('EXCLUSIVE')或('SHARED'),配合口令檔案
PWDsid.ora,此時為口令檔案認證方式
當在本地以oracle_dba組下的使用者登入進入windows2000後進行下邊的操作:
sqlplus /nolog
sql>conn /as sysdba
顯示
“ERROR:
ORA-01031: insufficient privileges
”
實質上是要求提供擁有sysdba身份的使用者名稱和密碼
在本地或遠端進行下邊的操作
sqlplus "sys/密碼@服務名 as sysdba"
可進入系統
也就是說口令檔案認證方式允許使用者從本地或遠端以sysdba身份登入,但必須提供口令字
3)SQLNET.AUTHENTICATION_SERVICES=(NTS)同時REMOTE_LOGIN_PASSWORDFILE=('EXCLUSIVE')或('SHARED'),配合口令檔案
PWDsid.ora,此時作業系統認證和口令檔案認證同時起作用
當在本地以oracle_dba組下的使用者登入進入windows2000後進行下邊的操作:
sqlplus /nolog
sql>conn /as sysdba
可進入系統
當在遠端執行
sqlplus "sys/密碼@服務名 as sysdba"
同樣可正常登入到資料庫系統上
上邊的引數配置容易令人迷惑、混淆,造成假象。我推測網上有些朋友所以對身份認證產生費解可能就是因為這麼
配置引數的!
三、其他
從前邊的討論可以知道,我們能夠對sys以外的使用者賦予sysdba身份,具體方法就是
SQLNET.AUTHENTICATION_SERVICES=(NONE)
REMOTE_LOGIN_PASSWORDFILE=('EXCLUSIVE')
口令檔案PWDsid.ora
SQL>grant sysdba to 使用者名稱
這樣,其他具有sysdba身份的使用者就加入到PWDsid.ora中,並可以被PWDsid.ora識別,我們可以用這個被賦予sysdba身份的使用者登入並進行類似sys使用者下所能執行的操作
NONE
Oracle ignores any password file. Therefore, privileged users must be authenticated by the operating system.
SHARED
More than one database can use a password file. However, the only user recognized by the password file is SYS.
EXCLUSIVE
The password file can be used by only one database and the password file can contain names other than SYS
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18921899/viewspace-1017053/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於os認證和口令檔案認證(轉)
- os認證和口令檔案!
- Oracle OS 認證, 口令檔案Oracle
- oracle os認證和口令檔案認證的簡要解析Oracle
- Oracle OS認證與口令檔案認證詳解Oracle
- Oracle中兩種認證方式:OS認證與口令檔案認證Oracle
- os認證、口令檔案認證及兩個引數【轉】
- os認證以及口令檔案的(引用warehouse的)
- ASM認證與口令檔案ASM
- 【登陸認證】oracle的作業系統認證和口令檔案認證方式(轉載)Oracle作業系統
- Oracle OS認證、口令檔案、密碼丟失處理Oracle密碼
- OS認證以及口令檔案的一點總結(轉)
- 關於ORACLE作業系統認證和ORAPWD密碼檔案認證SYSDBA許可權Oracle作業系統密碼
- Oracle基礎結構之OS驗證和口令檔案驗證Oracle
- 關於HttpClient繞過SSL認證以及NTLM認證HTTPclient
- Oracle中的鑑權口令認證Oracle
- 關於ORACLE登陸認證Oracle
- 重新認識口令檔案
- 作業系統認證與ORACLE密碼檔案認證方式作業系統Oracle密碼
- 【認證與授權】2、基於session的認證方式Session
- Basic認證和Bearer Token認證的區別
- 今天安裝的資料庫出現作業系統認證可以透過,口令檔案認證不能透過的情況.資料庫作業系統
- 1.6.5. 使用密碼檔案認證密碼
- 關於SSL證書雙向認證該怎麼操作
- 【ORACLE】oracle 使用者(sysdba)遠端登入和口令認證Oracle
- 關於shiro安全框架和shiro的認證流程框架
- HTTP認證之基本認證——Basic(一)HTTP
- HTTP認證之基本認證——Basic(二)HTTP
- 建立遷移檔案 auth 認證表 users
- 淺談oracle 使用者(sysdba)遠端登入和口令認證Oracle
- Kubernetes客戶端認證——基於CA證書的雙向認證方式客戶端
- 認證授權方案之JwtBearer認證JWT
- HTTP認證之摘要認證——Digest(一)HTTP
- Laravel 認證原理及完全自定義認證Laravel
- 網路身份認證——Kerberos配置及認證ROS
- Kubernetes客戶端認證(二)—— 基於ServiceAccount的JWTToken認證客戶端JWT
- 增強版實名認證介面-Java身份證實名認證介面程式碼-身份認證Java
- Passport 認證Passport