關於ORACLE作業系統認證和ORAPWD密碼檔案認證SYSDBA許可權
首先注意如下文件說明:
Operating system authentication takes precedence over password file authentication. If you meet the requirements for operating system authentication, then even if you use a
password file, you will be authenticated by operating system authentication.
On most operating systems, authentication for database administrators involves placing the operating system username of the
database administrator in a special group, generically referred to as OSDBA. Users in that group are granted SYSDBA privileges. A similar group, OSOPER, is used to
grant SYSOPERprivileges to users.
Operating system authentication takes precedence over password file authentication. Specifically, if you are a member of the OSDBA or OSOPER group for the operating system, and you connect as SYSDBA or SYSOPER,you will be connected with associated administrative privileges regardless of the username/passwordthat you specify.If you are not in the OSDBA or OSOPER groups, and you are not in the password file, then attempting to connect as SYSDBA or as SYSOPER fails
其中有一個重要的檔案ORAPWD檔案,文件說明如果使用者屬於OSDBA,典型我們建立ORACLE使用者的時候一般
都會將其設定為DBA組,這個時候即使沒有ORAPWD檔案,實際上ORACLE使用者也能夠登陸到資料庫,因為預設
的OSDBA就賦予了SYSDBA許可權,而如果一個使用者不屬於OSDBA(DBA組)的話那麼可以使用我們的密碼檔案
ORAPWD檔案進行驗證,典型比如遠端認證,或者一個不屬於DBA組的使用者。測試如下:
首先確定你的LISTENER有靜態認證。
Service "test" has 1 instance(s).
Instance "ora11g", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
然後關閉資料庫srvctl stop database -d ora11g,或者直接SHUTDOWN IMMEDIATE。
這個時候我們透過遠端使用ORAPWD認證
SQL> connect sys/gelc123@ora11g as sysdba
Connected to an idle instance.
如果我們刪除ORAOWD檔案如何?
[oracle@tasm dbs]$ mv orapwora11g orapwora11gbak
再次連線
SQL> connect sys/gelc123@ora11g as sysdba
ERROR:
ORA-01031: insufficient privileges
Warning: You are no longer connected to ORACLE.
同理我們建立一個非DBA組使用者
useradd lll
su - lll
連線
[lll@tasm ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Tue Apr 15 09:07:44 2014
Copyright (c) 1982, 2011, Oracle. All rights reserved.
ERROR:
ORA-01031: insufficient privileges
Enter user-name:
顯然此使用者不屬於DBA組不能使用作業系統認證,如果我們嘗試使用ORAPWD檔案認證如何?
[lll@tasm ~]$ sqlplus sys/gelc123 as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Tue Apr 15 09:10:43 2014
Copyright (c) 1982, 2011, Oracle. All rights reserved.
ERROR:
ORA-01031: insufficient privileges
Enter user-name:
同樣不行,因為我們剛剛MV了ORAPWD檔案,如果我們恢復如何?
[root@tasm ~]# su - lll
[lll@tasm ~]$ sqlplus sys/gelc123 as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Tue Apr 15 09:10:07 2014
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to an idle instance.
SQL> exit
可見可以連線,這個使用者雖然不屬於DBA組但是ORAPWD是可以認證的。
最後如果建立一個DBA使用者當然是可以連線的,因為他屬於DBA組自然就有SYSDBA許可權。
[kkk@tasm ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Tue Apr 15 09:13:11 2014
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to an idle instance.
SQL>
所以總結一下:
1、作業系統認證透過作業系統組的方式實現。
2、如果沒有屬於DBA組,可以使用ORAPWD檔案進行認證。
3、如果一個使用者在ORAPWD檔案中和DBA組,那麼作業系統認證優先。
4、注意remote_login_passwordfile的設定 見http://blog.itpub.net/7728585/viewspace-1262106/。
5、任何以AS SYSDBA許可權登陸的使用者均為SYSDBA許可權使用者
6、如果使用者不在DBA組和ORAPWD檔案中AS SYSDBA登陸將會報錯。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-1261684/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於os認證和口令檔案認證(轉)
- Hadoop 許可權認證Hadoop
- spring security許可權認證Spring
- 1.6.5. 使用密碼檔案認證密碼
- GoFrame 框架使用 casbin 許可權認證GoFrame框架
- DRF-認證許可權頻率
- Hyperf 完整專案-1-jwt 許可權認證JWT
- 5行程式碼搞定基於Auth的許可權認證行程
- .NET 開源許可權認證專案 MiniAuth上線
- springboot + shiro 實現登入認證和許可權控制Spring Boot
- DRF比Django的認證和許可權高在哪裡Django
- Django REST framework中認證和許可權的使用方法DjangoRESTFramework
- 1.6.4.2. 準備作業系統認證作業系統
- Spring Security OAuth2.0認證授權四:分散式系統認證授權SpringOAuth分散式
- django-rest-framework 基礎三 認證、許可權和頻率DjangoRESTFramework
- django-rest-framework-原始碼解析004-三大驗證(認證/許可權/限流)DjangoRESTFramework原始碼
- 【認證與授權】2、基於session的認證方式Session
- 總結sysdba和sysoper許可權
- SpringBoot整合Spring security JWT實現介面許可權認證Spring BootJWT
- 認證授權方案之JwtBearer認證JWT
- 關於HttpClient繞過SSL認證以及NTLM認證HTTPclient
- 密碼安全和無密碼身份認證那些事兒密碼
- 認證授權
- OAuth 2.0 授權碼認證OAuth
- uniapp 小程式 Laravel+jwt 許可權認證完整系列APPLaravelJWT
- keycloak~關於授權碼認證中的scope的實踐
- shiro授權和認證(四)
- 授權(Authorization)和認證(Authentication)
- 細說API - 認證、授權和憑證API
- 基於案例分析 MySQL 許可權認證中的具體優先原則MySql
- 為什麼無線認證系統能被人們認可
- Redis使用認證密碼登入Redis密碼
- 作業系統(AIX)雙因素身份認證解決方案作業系統AI
- CATIA許可證與作業系統的相容性作業系統
- 作業系統---IO許可權管理和敏感指令作業系統
- 深入Django:使用者認證與許可權控制實戰指南Django
- Ocelot閘道器+IdentityServer4實現API許可權認證IDEServerAPI
- 完整的 uni-App+Laravel+jwt-auth 小程式許可權認證APPLaravelJWT
- Spring boot 入門(四):整合 Shiro 實現登陸認證和許可權管理Spring Boot