1. 程式人生 > >OEM以及oracle客戶端中sys無法以sysdba登入解決案例

OEM以及oracle客戶端中sys無法以sysdba登入解決案例


今早,公司某平臺進行效能測試,出現了資料庫連線用光,需要進行資料庫訪問瓶頸問題分析,在資料庫伺服器上順利安裝好了OEM,在window客戶端進行OEM登入時候,通過sys帳號以sysdba角色許可權登入,提示使用者名稱或密碼錯誤,直接到伺服器上以conn sys/****** as sysdba連線成功,而另外一臺伺服器在客戶單OEM通過sys以sysdba角色登入成功,通過分析確定,不能登入的那臺伺服器配置或者資料庫方面的配置肯定存在問題,因為OEM是通過瀏覽器訪問,本身客戶端不需要設定的,下面是解決步驟思路:
Oracle的使用者資訊一般來說是儲存在資料字典裡的,所以常規使用者在Oracle資料庫沒有啟動的時候是無法登陸的。但有兩類使用者例外,這就是具有sysdba或者sysoper許可權的使用者。Oracle sysdba或者sysoper使用者的登陸有兩種方式:一是通過OS認證,二是通過密碼檔案驗證。 究竟使用哪一種驗證方式以及能否成功登陸取決於三個方面的因素:
1. sqlnet.ora中SQLNET.AUTHENTICATION_SERVICES的設定 2. 引數檔案中REMOTE_LOGIN_PASSWORDFILE的設定 3. 密碼檔案orapwd_$ORACLE_SID Oracle進行許可權驗證的大致順序如下:
1. 根據SQLNET.AUTHENTICATION_SERVICES的值決定是進行os驗證還是密碼檔案驗證。 2. 如果是os驗證,根據當前使用者的使用者組判斷是否具有sysdba許可權。如果os驗證失敗,則進行密碼檔案驗證。 2. 如果是密碼檔案驗證,REMOTE_LOGIN_PASSWORDFILE的值以及密碼檔案是否存在決定了驗證是否成功。  www.2cto.com  1. OS 驗 證 要啟用os驗證,就必須在sqlnet.ora中設定SQLNET.AUTHENTICATION_SERVICES=(NTS),然後在Windows中建立ora_dba使用者組,把相關使用者加入到這個組中(e.g., administrator),這樣administrator就可以在不用提供使用者名稱和密碼(或者提供任意的使用者名稱和密碼)的情況下以sysdba身份本地登陸。因為作業系統已經代替Oracle進行了驗證。 測試一:伺服器端登入 $ sqlplus / as sysdba Connected to:  Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production  With the OLAP and Data Mining options  SQL>  SQL> sqlplus sys/change_on_install as sysdba  Connected to:  Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production  With the OLAP and Data Mining options  SQL>  先在windows客戶端tnsnames.ora中配置了一個網路服務名1.163center SQL:\>sqlplus sys/
[email protected]
as sysdba  ERROR:  ORA-01031: insufficient privileges  Enter user-name:    www.2cto.com  2. 密碼檔案驗證
密碼檔案包含了被授予sysdba和sysoper許可權的使用者的使用者名稱和密碼。這是一個加密檔案,一般來說存放在$ORACLE_HOME/dbs目錄下, 檔名為orapwd_$ORACLE_SID。 如果要使用密碼檔案驗證,則把sqlnet.ora改為SQLNET.AUTHENTICATION_SERVICES=none,或者從sqlnet.ora中刪除SQLNET.AUTHENTICATION_SERVICES。同上匿名登陸sqlplus會失敗,給出使用者名稱和密碼就可以成功登陸。 測試一:刪除密碼檔案。使用使用者名稱和密碼登陸,失敗! SQL>sqlplus sys/change_on_install as sysdba  ERROR:  ORA-01031: insufficient privileges  Enter user-name:  測試二:恢復密碼檔案,設定REMOTE_LOGIN_PASSWORDFILE=none。使用使用者名稱和密碼登陸,失敗! SQL> alter system set remote_login_passwordfile=none scope=spfile;  System altered.  $sqlplus sys/change_on_install as sysdba  ERROR:  ORA-01017: invalid username/password; logon denied  Enter user-name:  測試三:恢復密碼檔案,設定REMOTE_LOGIN_PASSWORDFILE為EXCLUSIVE或者SHARED。使用使用者名稱和密碼登陸,成功! SQL> alter system set remote_login_passwordfile=exclusive scope=spfile;  System altered.  $sqlplus sys/change_on_install as sysdba  Connected to an idle instance.  SQL>     www.2cto.com  3. 密碼檔案
檢視具有sysdba或者sysoper許可權的使用者: SQL> select * from v$pwfile_users;  USERNAME                        SYSDB    SYSOP  ------------------------------  -------  -------  SYS                             TRUE     TRUE  每次使用grant sysdba/sysoper授予新使用者特殊許可權或是alter user命令修改擁有sysdba/sysoper許可權的使用者密碼的時候,Oracle都會自動的同步密碼檔案,這樣保證在
資料庫
沒有開啟的情況擁有特殊許可權的使用者能正常的登陸資料庫以進行管理操作。
SQL> grant sysdba to logicgate;  Grant succeeded.  SQL> select * from v$pwfile_users;  USERNAME                       SYSDB     SYSOP  ------------------------------- -------- --------  SYS                             TRUE     TRUE  LOGICGATE                       TRUE     FALSE  使用orapwd命令可以重建密碼檔案。 $orapwd  Usage: orapwd file=<fname> password=<password> entries=<users> force=<y/n>    where      file - name of password file (mandatory),      password - password for SYS (mandatory),      entries - maximum number of distinct DBA (optional),      force - whether to overwrite existing file (optional)  其中檔名和密碼是必需的。entries設定了密碼檔案可包含的dba使用者的最大數目。force定義了是否覆蓋當前檔案。重建密碼檔案會清除系統內除了sys使用者以外所有sysdba使用者的密碼。必須使用grant sysdba同步密碼檔案。 $orapwd file=$ORACLE_HOME/dbs/orapwd_$ORACLE_SID password=zdsoft entries=20 force=y;  $sqlplus sys/zdsoft as sysdba  Connected to:    www.2cto.com 
Oracle
Database 10g Enterprise Edition Release 10.2.0.1.0 - Production  With the OLAP and Data Mining options  SQL> select * from v$pwfile_users;  USERNAME                        SYSDB    SYSOP  ------------------------------- -------- --------  SYS                             TRUE     TRUE  通過以上三個步驟配置:sqlnet.ora,重建密碼檔案,設定REMOTE_LOGIN_PASSWORDFILE = exclusive後,windows客戶端通過網路服務名sys以sysdba角色可以登入資料庫伺服器,同時OEM本來只能通過sysman以normal身份登入變成sys可以sysdba登入

相關推薦

OEM以及oracle客戶sys無法sysdba登入解決案例

今早,公司某平臺進行效能測試,出現了資料庫連線用光,需要進行資料庫訪問瓶頸問題分析,在資料庫伺服器上順利安裝好了OEM,在window客戶端進行OEM登入時候,通過sys帳號以sysdba角色許可權登入,提示使用者名稱或密碼錯誤,直接到伺服器上以conn sys/****** as sysdba連線成功,

ios微信客戶聲音無法播放

html中audio標籤<audio src="http://wx.masrbs.com/Addons/HFive/View/default/Public/music/flipsound.mp3" id="Jaudio" class="media-audio" prel

gsoap 在一個客戶呼叫多個service的解決方案

文件上關於這個的解決方案有兩種 1.使用wsdl2h將多個wsdl生成為一個wsdl. 2.使用-q指定C++名稱空間 方法1.沒有成功,而且還要解決一大堆的名稱空間問題 方法2.必須生成一個額外的沒有名稱空間的env,不然stdsoap2.cpp 編譯不過.而且使用env

system 無法 sysdba 登入,提示:許可權不足。

今天新建了一個數據庫是oracle 10G64位,這個以前就建了二個例項,正在使用中,今天新建了一個例項,發現只有sys帳戶可用sysdba登入,system無法以sysdba登入,但以nomal可以登入,記得以前建的新庫,都可以直接用DBA登入,複製了SYS的所有許可權後

禁止PLSQL以及其他客戶工具連線ORACLE資料庫

這兩天一直在弄客戶端工具如PLSQL等登入資料庫的許可權控制,滿足了這樣不能滿足那樣,搞得頭暈。本來在系統防火牆層面應該也可以實現,但是還是要求在程式碼上來操作,開始用同事寫的一個指令碼來測試,雖然可以限制,但是不滿足要求。後來改了改,折騰了近一天,終於基本可以滿足要求。

apache 日誌記錄代理IP以及真實客戶IP

說明:我用的是nginx反向代理,實際上就是在logformat中新增%{X-FORWARDED-FOR}i,下面為實驗過程 一、下面是我的nginx反向代理的配置檔案內容 nginx主配置主配置檔案 [root@nginx-server conf]#

LinuxSVN伺服器安裝與使用以及windows客戶的使用(CentOS-6.5)

1 SVN簡介     svn是Subversion的簡稱,是一個開放原始碼的版本控制系統,相較於RCS、CVS,它採用了分支管理系統,它的設計目標就是取代CVS。網際網路上很多版本控制服務已從CVS轉移到Subversion。 svn伺服器有2種執行方式:獨立伺服器和藉助

kettle 6.0安裝並連線ORACLE,HADOOP CDH5.3.0以及hadoop客戶配置

到官網下載 下載完畢後解壓,記得本機要有java環境並配置好 執行spoon.bat在linux下執行spoon.sh,親測win7/centos6可以用 新建轉換,選擇輸入拖出表輸入,輸出拖出表輸出 雙擊設定 點選新建,建立一個oracle新連線 配置好

詳解OracleNLS_LANG變數的使用(關於oracle客戶中文亂碼的問題)

    作業系統環境變數針對語言項設定有幾個,我經常設定的是這兩個LANG和NLS_LANG。LANG是針對Linux系統的語言、地區、字符集的設定,對linux下的應用程式有效,如date;NLS_LANG是針對Oracle語言、地區、字符集的設定,對oracle中的工具有

Linux 上安裝oracle客戶

環境變量 network al32utf8 work -- ech lin x86_64 lib 1. 下載安裝包 http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html oracle-i

通過MAPI over HTTP管控outlook客戶外網無法訪問

通過mapi over http管控outlook客戶端外網無法訪問記錄客戶需求,讓某些用戶不能再公網使用郵箱。exchange 2013環境可以通過ECP或者exchange powershell進行郵箱用戶級別的管控,包括移動設備、OWA、IMAP、POP3都能禁用(禁用後內外網都不能訪問)保留MAPI功

window下修改Oracle客戶版的字符集

window oracle客戶端 字符集1、win+R,運行regedit,進入註冊表編輯器。 2、修改NLS_LANG的字符集 路徑 HKEY_LOCAL_MACHINE -> SOFTWARE -> WOW6432Node -> ORACLE -> KEY_OraCl

System.Data.OracleClient 需要 Oracle 客戶軟件 version 8.1.7 或更高版本

model oracle ora mod 版本 users 客戶端軟件 system .com 說明: 執行當前 Web 請求期間,出現未經處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。 異常詳細信息: System.Servi

Linux下更改oracle客戶字符集和服務字符集

啟動 dia 系統 detail roc gb2 set rom com from:http://blog.csdn.net/chid/article/details/6166506 Linux 下更改 oracle 客戶端字符集和服務端字符集 1.Linux 下更改

不安裝oracle客戶,用plsql連接oracle

tns ora- ould con ons list sha nfc 目錄 常用的Oracle開發的工具有SQL Developer和PL/SQL Developer,個人感覺前者雖然跨平臺性優於後者,但比較大(大於300M)占用資源,而且用戶體驗也一般,而後者相對就小很多

windows下安裝oracle客戶和php擴展

64位 電腦 font exif dap pos sof mic client 先來抱怨下 ,按這玩楞費了我大半天的時間,一路的坑! 我的電腦是win7 64位的 第一步 打開php.ini 把 extension=php_oci8_12c.dll extension=

PL/SQL配置oracle客戶,登錄遠程數據庫配置

cat 端口 too 打開 mes conf post article tar 本地未安裝Oracle數據庫,但又想使用PL/SQL連接服務器端的數據庫. 1.新建NETWORK文件夾, 在該文件夾下新建ADMIN文件夾, 在該文件夾下新建tnsnames.ora文件(

ORACLE客戶語言設置,SQLPLUS亂碼解決方法

oracle 亂碼 語言 設置 客戶端環境參數NLS_LANG = LANGUAGE_TERRITORY.CHARACTER_SET 說明如下Parameter DescriptionLANGUAGE Specifies the l

客戶檢測到有潛在危險的 request.form值[解決方法]

解決 .config valid runt jpg dangerous 也會 bsp validate 當頁面編輯或運行提交時,出現“從客戶端中檢測到有潛在危險的request.form值”問題,該怎麽辦呢?如下圖所示: 下面博主匯總出現這種錯誤的幾種解決方法:問題原因:由

C# 不安裝Oracle客戶情況下,如何連接到Oracle數據庫

是不是 如何 () 需要 -s 找到 密碼 dex add 簡介:   在我們開發應用場景經常碰到需要連接Oracle數據庫,這也是相當常見的一種情況。一般.Net環境連接Oracle數據庫,可以通過TNS/SQL.NET 配置文件,而 TNS 必須要 Oracle 客戶端