1. 程式人生 > >oracle使用者身份認證方式

oracle使用者身份認證方式

資料庫身份認證

資料庫身份認證比較好理解,就是資料庫使用者口令以加密的方式儲存在資料庫內部,當用戶連線資料庫時必須輸入使用者名稱和密碼,通過資料庫認證後才可以登入到資料庫。例如,建立一個數據庫認證的使用者,語句為:

SQL> create user hxy4 identified bysys123;                         // 通過by這個關鍵字來確定認證方式為資料庫身份認證

User created.

為此,資料庫必須處於開啟狀態

--資料庫身份認證:oracle認證認為作業系統使用者是不可信任的,如果要訪問資料庫,必須進行再次認證。

外部身份認證

--作業系統認證

:oracle認為作業系統使用者是可靠的,即既然能登陸到作業系統那麼oracle資料庫你也能登陸(即為作業系統使用者提供的一種登陸方式

當用戶試圖建立與資料庫的連線時,資料庫不會要求使用者輸入口令和使用者名稱

——如果使用外部身份驗證建立使用者賬戶,Oracle 會將身份驗證委託給外部服務。它不會提示輸入口令。如果為啟用 Advaned Security 選項,則唯一可以使用得外部身份驗證方形式是作業系統身份驗證。此技術使用與作業系統使用者賬戶同樣的名稱建立 Oracle 使用者賬戶,但在前面加OS_AUTHENT_PREFIX 例項引數指定的字串。此引數預設為 OPS$ 字串。可以用下列語句查詢:

SQL> show parameter os_authent_prefix

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
os_authent_prefix                    string      ops$
SQL> 

或者:
SQL> select value from v$parameter where name='os_authent_prefix
' 2 / VALUE -------------------------------------------------------------------------------- ops$

 建立外部作業系統身份驗證的使用者很簡單,假如有一個作業系統使用者名稱為 dragon,則:

對於 LINUX 系統:
   create user ops$dragon identified externally;
對於 WINDOWS 系統,假如登陸 ID 是 Dragon,域名是 MIS:
   create user "OPS$MIS\DRAGON" identified externally;

建立好使用者後,以 dragon 身份登入到作業系統,然後在直接輸入:sqlplus / 進行登入並連線到資料庫。  

另外,使用OS_AUTHENT_PREFIX=OPS$時:提供了靈活的使用者驗證方式,既可通過作業系統進行驗證,也可通過Oracle  伺服器進行驗證。在這種情況下,DBA 可通過輸入下列格式的命令建立使用者:
CREATE USER ops$user IDENTIFIED BY password ...
登入到執行Oracle  伺服器的計算機上的使用者無需提供口令。如果使用者從遠端客戶機連線,則可提供口令以實現連線。

下面摘至oracle官方文件

Some operating systems let Oracle use information they maintain to authenticate
users, with the following benefits:
■ Once authenticated by the operating system, users can connect to Oracle more
conveniently, without specifying a user name or password. For example, an
operating-system-authenticated user can invoke SQL*Plus and skip the user name
and password prompts by entering the following:
SQLPLUS /
■ With control over user authentication centralized in the operating system, Oracle
need not store or manage user passwords, though it still maintains user names in
the database.
■ Audit trails in the database and operating system use the same user names.
When an operating system is used to authenticate database users, managing
distributed database environments and  database links requires special care.

全域性身份認證

全域性驗證式使用者也不在資料庫中儲存驗證密碼,這種型別的驗證是通過一個高階安全選項所提供的身份驗證服務來進行的。

一個用於管理身份的新興標準時使用 LDAP 伺服器。Oracle Internet Directory(OID) 就是 Oracle 符合 LDAP 標準的一個產品,全域性使用者就是在 LDAP 目錄中定義的使用者。

oracle管理員驗證方式:

由上圖可以看出oracle管理員登陸時有多項選擇,在遠端登陸時,如果連線安全並且有OS驗證那麼可以進行OS驗證;在本地,可以選擇OS驗證,也可以使用密碼檔案驗證,比較靈活

[[email protected] dbs]$ mv orapwdsg02 orapwdsg02.bak  ----註釋掉密碼檔案
[[email protected] dbs]$ sqlplus
sys/[email protected] as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Wed Jul 24 12:07:37 2013

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

ERROR:
ORA-01031: insufficient privileges

                                                        -----報錯了
Enter user-name:
ERROR:
ORA-01017: invalid username/password; logon denied


Enter user-name:
ERROR:
ORA-01017: invalid username/password; logon denied


SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus

改回來:

[[email protected] dbs]$ mv orapwdsg02.bak orapwdsg02    
[[email protected] dbs]$ sqlplus
sys/[email protected] as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Wed Jul 24 12:10:04 2013

Copyright (c) 1982, 2009, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options      ------登陸成功

SQL>

 跟身份驗證相關的幾個引數和配置

   檢視是否允許遠端登入使用口令檔案進行身份驗證,有三個取值: SHARED/EXCLUSIVE/NONE,為 NONE 的話表示不允許遠端使用口令檔案驗證,如遠端用SYS賬號連線 Oracle 將會報錯,如下面。

SQL> show parameter remote_login_passwordfile

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile            string      EXCLUSIVE
SQL> 
SQL> alter system set remote_login_passwordfile='NONE' scope=spfile
 2  /

System altered.
重啟生效
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup force

進行遠端連線,報錯,實際是引數值被更改:

SQL> conn sys/hxy@lcro as sysdba
ERROR:
ORA-01017: invalid username/password; logon denied

SQL> show parameter remote_login

NAME                                 TYPE        VALUE ------------------------------------ ----------- ------------------------------ remote_login_passwordfile            string      NONE

       檢視使用口令檔案進行身份驗證的使用者列表:

SQL> select * from v$pwfile_users
  2  /

USERNAME                       SYSDB SYSOP
------------------------------ ----- -----
SYS                            TRUE  TRUE

      $ORACLE_HOME/network/admin/sqlnet.ora 配置檔案中 SQLNET.AUTHENTICATION_SERVICES 引數,有三個取值:

  • NONE:作用是不允許通過 OS 系統使用者登入資料庫,需要提供使用者名稱及密碼;
  • ALL:作用是允許所有的登入方式;
  • NTS:作用是允許本地作業系統使用者認證;

相關推薦

oracle使用者身份認證方式

資料庫身份認證 資料庫身份認證比較好理解,就是資料庫使用者口令以加密的方式儲存在資料庫內部,當用戶連線資料庫時必須輸入使用者名稱和密碼,通過資料庫認證後才可以登入到資料庫。例如,建立一個數據庫認證的使用者,語句為: SQL> create user hxy4 ide

api介面對於客戶端的身份認證方式以及安全措施 基於http協議的api介面對於客戶端的身份認證方式以及安全措施

轉載 基於http協議的api介面對於客戶端的身份認證方式以及安全措施  由於http是無狀態的,所以正常情況下在瀏覽器瀏覽網頁,伺服器都是通過訪問者的cookie(cookie中儲存的jsessionid)來辨別客戶端的身份的,當客戶端進行登入伺服器也會將登入資訊存放在伺服器並與客戶端的coo

mysql8.0身份認證方式變更

在使用docker搭建wordpress時,連線資料庫異常,wordpress容器無法正常執行,檢視日誌提示如下錯誤: [root@swarm-worker2 ~]# docker logs -f wordpress.1.wyn0h32nbjgl07htkpqxwcqdv WordPr

基於前後端分離的身份認證方式——JWT

目錄: 一、什麼是JWT 二、我們為什麼要使用JWT(與傳統的session認證有何區別) 三、如何使用JWT 四、JWT的構成及原理 五、JWT加解密例項 一、什麼是JWT JWT——Json web token 是為了在網路應用環境間傳遞宣

修改Oracle預設的認證方式

Oracle預設的認證方式是OS認證,所以如果以安裝oracle的賬號登陸伺服器,就不需要登入資料庫,只要在伺服器端不用輸入使用者名稱密碼就可以以DBA許可權登入資料庫: show user也可以看出,不管用什麼登入都能通過,並且都是SYS使用者。 解決方法:

不同操作系統上屏蔽oracle的操作系統認證方式

sans may window port 修改 one services 1.0 pri windows系統上>如果不想用戶通過操作系統驗證方式登錄,可以修改 sqlnet.ora文件,把 SQLNET.AUTHENTICATION_SERVICES=NTS 前面加#

.NetCore採取JWT方式進行身份認證

  驗證與授權 Authentication(身份認證) 認證是系統對請求的使用者進行身份識別的過程。 Authorization (授權) 授權是對認證通過後的使用者進行許可權分配的過程。授權簡單理解就是:識別認證後用戶所擁有哪些許可權,從而開放伺服器相對應的資源; 我們通俗點來解釋身

oracle使用者登入的3種認證方式

url:http://www.cnblogs.com/ivictor/p/4213823.htmlOracle對於普通賬戶和超級管理員(指sysdba和sysoper)的認證機制不一樣,前者是通過資料字典,後者主要是通過作業系統驗證和密碼檔案驗證。因此一般提到作業系統認證或密

oracle登陸認證方式

customer exc 拒絕 tnsnames art 例如 err med windows服務 轉自:http://blog.itpub.net/14359/viewspace-683064/ 案例: 1,發現此時操作系統認證不成功: C:\Users\Admin

Asp.net MVC使用FormsAuthentication,MVC和WEB API可以共享身份認證 (轉載)

mlp ges web api nbsp 快速 charset 生成頁面 核心 lds 在實際的項目應用中,很多時候都需要保證數據的安全和可靠,如何來保證數據的安全呢?做法有很多,最常見的就是進行身份驗證。驗證通過,根據驗證過的身份給與對應訪問權限。同在Web Api中如何

【Shiro】Apache Shiro架構之身份認證(Authentication)

trac pretty asm 安全保障 軟件測試 釋放 model tac 讀取配置文件 Shiro系列文章: 【Shiro】Apache Shiro架構之權限認證(Authorization) 【Shiro】Apache Shiro架構之集成web

SharePoint 2013 配置基於表單的身份認證

framework 中心 fig token borde 和數 說明 ember 選擇 前 言  這裏簡介一下為SharePoint 2013 配置基於表單的身份認證。簡單的說,就是用Net提供的工具創建數據庫。然後配置SharePoint 管理中心、STS服務、Web應

MVC身份認證 解決辦法 測試可行

tin nbsp tor router 項目 password asi 創建 lte 這個方法還有點不太完善,個人覺得或許可能有更好的辦法。 但是現在還不知道,看到這種留個記錄。 首先在項目根目錄創建文件夾Filter 然後創建BasicAuthAttribute.cs

業務邏輯漏洞挖掘隨筆【身份認證篇】

驗證 情況 嘗試 測試經驗 賬號 16px 判斷 認證 授權 在廠家的時候出來跟客戶聊安全,老是喜歡把漏洞分為“傳統漏洞”、“業務邏輯漏洞”。現在聽到這詞還蠻新鮮的。最近要讓學弟們去幫忙挖漏洞,結合自己的測試經驗順便給他們歸納了下業務邏輯挖掘,於是有了本文....

[轉]統一身份認證(CAS)簡單說明與設計方案

認證服務器 交互 class ket inf 開發者 let 一次 中心 統一身份認證(CAS)簡單說明與設計方案(轉) 1. 單點登錄概述 所謂單點登錄(SSO),只當企業用戶同時訪問多個不同(類型的)應用時,他們只需要提供自身的用戶憑證信息(比如用戶名/密碼)一次,

C# 連接 Oracle 的幾種方式

微軟公司 客戶 access unicode address 空間 cti 下載 oracle客戶端 一:通過System.Data.OracleClient(需要安裝Oracle客戶端並配置tnsnames.ora)1. 添加命名空間System.Data.Oracl

NetScaler OTP雙因子身份認證登錄演示

認證 雙因子 NetScaler OTP 應用場景NetScaler OTP(one time password)是雙因子身份證的一種,利用用戶名密碼+6位時間型令牌認證碼,完成身份認證。 在以前的雙因子解決方案中NetScalerGateway需要與第三方 Radius服務器集成,實現雙因子認證。對

聲紋識別技術助力遠重慶時時彩技巧程身份認證無線互聯網以及智能手機的迅速發展

模型訓練 日常 信噪比 數量 ica 替代 語音識別 進行 bsp 聲紋”作為一種典型的行為特征,相比其他生理特征在遠程身份認證中具有先天的優勢,文章介紹了聲密保在遠程身份認證中的應用,解析了一些在聲紋識別準確率、時變問題和噪音問題等方面的技術難點和工程解決經驗,最後針對遠

【安全牛學習筆記】w3af-身份認證

security+ 信息安全 身份認證 W3af-----身份認證 HTTP Basic NTLM

基於FormsAuthentication的用戶、角色身份認證

add quest provide 數據庫 登錄 username uname 是否 image 一般情況下,在我們做訪問權限管理的時候,會把用戶的正確登錄後的基本信息保存在Session中,以後用戶每次請求頁面或接口數據的時候,拿到 Session中存儲的用戶基本信息,