Decode360's Blog

          業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
            397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
          Oracle特殊權(quán)限驗(yàn)證
          ?
          ??? Oracle的這一塊內(nèi)容都比較繞,很容易就理解錯(cuò)了。幸好找到一篇寫得非常詳細(xì)的教程,專門摘錄下來學(xué)習(xí)。不過這塊內(nèi)容也是一定需要掌握的,在管理的時(shí)候是經(jīng)常要用到的。自己總結(jié)的內(nèi)容不多,關(guān)鍵看最后的那個(gè)轉(zhuǎn)載。
          ?
          ?
          一、Oracle的權(quán)限驗(yàn)證方式:
          ?
          ??? Oracle的驗(yàn)證方式取決于三個(gè)屬性:
          ?
          ??? * SQLNET.ORA參數(shù)文件中的參數(shù)SQLNET.AUTHENTICATION_SERVICES設(shè)置
          ??? * PFILE(SPFILE)參數(shù)文件中的參數(shù)REMOTE_LOGIN_PASSWORDFILE設(shè)置
          ??? * 口令文件orapw$SID(Linux) | PWD$SID.ora(Windows)
          ?
          ??? Oracle權(quán)限認(rèn)證的基本順序是這樣的:先由SQLNET.AUTHENTICATION_SERVICES的設(shè)置值來決定是使用OS認(rèn)證還是口令文件認(rèn)證,如果使用口令文件認(rèn)證的話就要看后面兩個(gè)條件了:如果REMOTE_LOGIN_PASSWORDFILE參數(shù)設(shè)置為非NONE而且口令文件存在的話就能正常使用口令文件認(rèn)證,否則將會(huì)失敗。
          ?
          ??? oracle_log
          ?
          1、OS驗(yàn)證
          ?
          ??? ① 為用戶創(chuàng)建操作系統(tǒng)帳號
          ??? ② 講用戶添加到Oracle安裝時(shí)定義的組中(安裝介質(zhì)時(shí)創(chuàng)建)
          ??? ③ 設(shè)置REMOTE_LOGIN_PASSWORDFILE為NONE
          ?
          ??? SQL> CONN / AS SYSDBA
          ??? SQL> CONN / AS SYSOPER
          ?
          2、密碼文件驗(yàn)證
          ?
          ??? ① 為用戶創(chuàng)建操作系統(tǒng)帳號
          ??? ② 創(chuàng)建密碼文件:ORAPWD FILE=file_name PASSWORD=password ENTRIES=max_users
          ??? ③ 將REMOTE_LOGIN_PASSWORDFILE設(shè)為EXCLUSIVE
          ??? ④ 以SYS用戶登陸,創(chuàng)建用戶,并GRANT SYSDBA to scott
          ?
          ??? * GRANT SYSDBA語句即將用戶加入密碼文件中
          ??? SQL> CONN scott/password AS SYSDBA
          ?
          ??? 詳細(xì)的情況參見: http://www.lansz.com/html/2008/06/oracle_os_pwfile_authentication.html
          ?
          ?
          二、密碼文件管理
          ?
          ??? 1、創(chuàng)建:
          ?
          ????? ORAPWD FILE=file_name PASSWORD=password ENTRIES=max_users
          ?
          ????? FILE:指定完整路徑名的文件,經(jīng)過加密無法直接讀取。RAC中多個(gè)實(shí)例必須指向一個(gè)密碼文件。
          ????? PASSWORD:SYS用戶密碼,使用ALTER修改SYS密碼時(shí),密碼文件中隨之修改。
          ????? ENTRIES:密碼文件可以接受的登陸個(gè)數(shù),通常是4的倍數(shù),可以超出,但最好有多。
          ?
          ??? 2、REMOTE_LOGIN_PASSWORDFILE:
          ?
          ????? NONE:默認(rèn)值,結(jié)果是返回密碼文件不存在的結(jié)果。
          ????? EXCLUSIVE:密碼文件只能用于一個(gè)數(shù)據(jù)庫,可以講SYSDBA/SYSOPER權(quán)限授予個(gè)人用戶
          ????? SHARED:可用于多個(gè)數(shù)據(jù)庫,但只能針對SYS用戶(用于一個(gè)管理員管理多個(gè)數(shù)據(jù)庫時(shí))
          ?
          ??? 3、密碼文件用戶查看
          ?
          ????? select * from v$pwfile_users;
          ?
          ??? 4、增加密碼文件的用戶數(shù)目:
          ?
          ????? * 查找v$pwfile_users中的密碼文件數(shù)目
          ????? * 關(guān)閉數(shù)據(jù)庫
          ????? * 刪除現(xiàn)有密碼文件
          ????? * 用ORAPWD重新創(chuàng)建密碼文件,將ENTRIES設(shè)置得大一點(diǎn)
          ????? * 重新將密碼文件用戶添加進(jìn)去
          ????? * 注意刪除和重新建立之后必須重新添加,因?yàn)闀r(shí)間標(biāo)記和校驗(yàn)不同
          ?
          ?
          ?
          ?
          http://www.lansz.com/html/2008/06/oracle_os_pwfile_authentication.html
          ?

          ************************************************************************************************************

          ?

          Oracle OS認(rèn)證與口令文件認(rèn)證詳解

          ?

          本文概述與實(shí)驗(yàn)環(huán)境

          概述:本文只討論OS認(rèn)證和口令文件認(rèn)證方式的配置方法,如何配置以及使用OS認(rèn)證和口令文件認(rèn)證方式驗(yàn)證SYSDBA/SYSOPER權(quán)限。

          實(shí)驗(yàn)環(huán)境:Oracle 10.1 + Windows 2003 和 Oracle 10.2 + RHEL 4

          特殊權(quán)限與Oracle登陸認(rèn)證管理

          在開始學(xué)Oracle的時(shí)候有件事一直讓我感覺很奇怪,就是為什么在數(shù)據(jù)沒有起來的時(shí)候只要登錄到安裝Oracle的操作系統(tǒng)中直接用sqlplus / as sysdba就能登陸到數(shù)據(jù)庫中然后對數(shù)據(jù)庫進(jìn)行啟動(dòng)停止之類的操作。后來看到關(guān)于Oracle口令文件相關(guān)資料的時(shí)候才豁然開朗:數(shù)據(jù)庫認(rèn)證信息并不一定存在數(shù)據(jù)庫中的,這點(diǎn)和SQL Server很是不一樣。

          在Oracle中有兩類特殊的權(quán)限SYSDBA和SYSOPER,當(dāng)DBA需要對數(shù)據(jù)庫進(jìn)行維護(hù)管理操作的時(shí)候必須具有這兩類特殊權(quán)限之中的一種。在數(shù)據(jù)庫沒有打開的時(shí)候,使用數(shù)據(jù)庫內(nèi)建的賬號是無法登陸數(shù)據(jù)庫的,但是擁有SYSDBA或是SYSOPER權(quán)限的用戶是可以登陸的。認(rèn)證用戶是否擁有兩類特殊權(quán)限的方法有兩種:OS認(rèn)證和口令文件認(rèn)證。

          OS認(rèn)證和口令文件認(rèn)證方法

          Oracle特殊權(quán)限認(rèn)證方法
          (來源:Oracle? Database Administrator’s Guide 10g Release 2)

          Oracle數(shù)據(jù)庫究竟使用OS認(rèn)證還是口令文件認(rèn)證來進(jìn)行管理取決于下面三個(gè)因素:

          • SQLNET.ORA參數(shù)文件中的參數(shù)SQLNET.AUTHENTICATION_SERVICES設(shè)置
          • PFILE(SPFILE)參數(shù)文件中的參數(shù)REMOTE_LOGIN_PASSWORDFILE設(shè)置
          • 口令文件orapw$SID(Linux) | PWD$SID.ora(Windows)

          Oracle權(quán)限認(rèn)證的基本順序是這樣的,先由SQLNET.AUTHENTICATION_SERVICES的設(shè)置值來決定是使用OS認(rèn)證還是口令文件認(rèn)證,如果使用口令文件認(rèn)證的話就要看后面兩個(gè)條件了:如果REMOTE_LOGIN_PASSWORDFILE參數(shù)設(shè)置為非NONE而且口令文件存在的話就能正常使用口令文件認(rèn)證,否則將會(huì)失敗。

          SQLNET.AUTHENTICATION_SERVICES參數(shù)

          在SQLNET.ORA(位于$ORACLE_HOME/NETWORK/ADMIN目錄中)文件中,需要修改時(shí)直接用文本編輯器打開修改就行了,對于不同的操作系統(tǒng)SQLNET.AUTHENTICATION_SERVICES的取值會(huì)有些不一樣,通常我們會(huì)用到下面的一些設(shè)置值:

          • SQLNET.AUTHENTICATION_SERVICES = (ALL)

          對Linux系統(tǒng),支持OS認(rèn)證和口令文件認(rèn)證。

          對Windows系統(tǒng),實(shí)際實(shí)驗(yàn)是不支持此參數(shù),驗(yàn)證失敗。

          • SQLNET.AUTHENTICATION_SERVICES = (NTS)

          此設(shè)置值僅用于Windows NT系統(tǒng),此設(shè)置同時(shí)支持OS認(rèn)證和口令文件認(rèn)證,只有在設(shè)置了(NTS)值之后運(yùn)行在Windows系統(tǒng)上的Oracle才支持OS認(rèn)證。

          • SQLNET.AUTHENTICATION_SERVICES = (NONE)

          此設(shè)置值在Windows和Linux是作用一樣的,指定Oracle只使用口令文件認(rèn)證。

          • 不設(shè)置此參數(shù)或SQLNET.AUTHENTICATION_SERVICES =

          對Linux系統(tǒng),默認(rèn)支持OS認(rèn)證和口令文件認(rèn)證。

          對Windows系統(tǒng),默認(rèn)只支持口令文件認(rèn)證,不支持OS認(rèn)證。

          OS認(rèn)證實(shí)現(xiàn)

          Oracle使用操作系統(tǒng)中的兩個(gè)用戶組來控制OS認(rèn)證,在不同的操作系統(tǒng)中這兩個(gè)用戶組的名稱是不一樣的,一般來說他們是OSDBA 和 OSOPER,這兩個(gè)用戶組都是在Oracle安裝的時(shí)候創(chuàng)建的。下面列出不同系統(tǒng)中這兩個(gè)用戶組的名字:



          Operating System Group
          UNIX User Group
          UNIX User Group
          OSDBA
          dba
          ORA_DBA

          OSOPER
          oper
          ORA_OPER

          OSDBA用戶組的用戶可以使用SYSDBA權(quán)限登陸數(shù)據(jù)庫,OSOPER用戶組的的用戶可以使用SYSOPER權(quán)限來登陸數(shù)據(jù)庫。使用sqlplus可以用下面方法登陸

          CONNECT / AS SYSDBA
          CONNECT / AS SYSOPER

          擁有OS權(quán)限的用戶登陸數(shù)據(jù)庫時(shí)不再需要輸入用戶名和密碼,因此使用下面的命令也是可以正常登陸的:

          CONNECT ANY_USER_NAME / ANY_PASSWORD AS SYSDBA
          CONNECT ANY_USER_NAME / ANY_PASSWORD AS SYSOPER

          因此要?jiǎng)?chuàng)建一個(gè)新的OS認(rèn)證帳號步驟是:

          1. 建立一個(gè)OS用戶
          2. 將用戶加入到OSDBA或是OSOPER用戶組
          3. 用新增加的用戶登陸系統(tǒng),然后輸入sqlplus / AS SYSDBA進(jìn)行登陸

          REMOTE_LOGIN_PASSWORDFILE參數(shù)

          REMOTE_LOGIN_PASSWORDFILE系統(tǒng)參數(shù)的設(shè)置制定了數(shù)據(jù)庫使用口令文件的方法,此參數(shù)可以設(shè)置的值有三個(gè):

          • REMOTE_LOGIN_PASSWORDFILE = NONE

          不使用口令文件

          • REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE

          使用口令文件,但只有一個(gè)數(shù)據(jù)庫實(shí)例可用使用

          • REMOTE_LOGIN_PASSWORDFILE = SHARED

          多個(gè)數(shù)據(jù)庫實(shí)例共用一個(gè)口令文件,這種設(shè)置下是不能增加其他數(shù)據(jù)庫用戶作為特殊權(quán)限用戶到口令文件中的。

          REMOTE_LOGIN_PASSWORDFILE參數(shù)屬于初始化參數(shù),只能在init.ora/pfile中指定或是在數(shù)據(jù)庫打開狀態(tài)下使用下面語句修改,然后重新啟動(dòng)數(shù)據(jù)庫。

          ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE SCOPE = SPFILE ;

          要檢查當(dāng)前REMOTE_LOGIN_PASSWORDFILE的設(shè)定值在登陸Oracle后輸入下面的命令

          SQL > show parameter remote
          /** 這是輸出結(jié)果,看remote_login_passwordfile一行
          NAME???????????????????????????????? TYPE??????? VALUE
          ------------------------------------ ----------- ------------------------------
          remote_archive_enable??????????????? string????? true
          remote_dependencies_mode???????????? string????? TIMESTAMP
          remote_listener????????????????????? string
          remote_login_passwordfile??????????? string????? EXCLUSIVE
          remote_os_authent??????????????????? boolean???? FALSE
          remote_os_roles????????????????????? boolean???? FALSE
          SQL>
          */

          口令文件和口令文件認(rèn)證

          口令文件存放著被授予SYSDBA或SYSOPER權(quán)限的用戶的用戶名和密碼。它是一個(gè)加密的文件,用戶不能修改這個(gè)文件,
          在Linux系統(tǒng)中口令文件一般保存在$ORACLE_HOME/dbs目錄下,文件名為orapw$SID;在Windows系統(tǒng)中口令文件一般保存在$ORACLE_HOME/database目錄下,文件名為PWD$SID.ora。

          使用口令文件認(rèn)證的基本步驟是:

          1. 使用orapwd工具生成口令文件
          2. 設(shè)置REMOTE_LOGIN_PASSWORDFILE為EXCLUSIVE或是SHARED
          3. 使用SYS登陸數(shù)據(jù)庫,創(chuàng)建新的數(shù)據(jù)庫用戶
          4. 使用GRANT命令授予新創(chuàng)建的用戶SYSDBA/SYSOPER權(quán)限

          1、使用orapwd工具生成口令文件

          我們可以使用Oracle提供的工具orapwd來創(chuàng)建或者重新初始化一個(gè)口令文件:

          [oracle@RHEL4 dbs]$ orapwd
          Usage: orapwd file=<fname> password=<password> entries=<users> force=<y/n>

          ? where
          ??? file - name of password file (mand),
          ??? password - password for SYS (mand),
          ??? entries - maximum number of distinct DBA and???? force - whether to overwrite existing file (opt),
          OPERs (opt),
          ? There are no spaces around the equal-to (=) character.
          [oracle@RHEL4 ~]$ orapwd file='$ORACLE_HOME/dbs/orapw$ORACLE_SID' password=pwd entries=10 force=y
          [oracle@RHEL4 ~]$

          注意:使用orapwd重新生成口令文件之后以保存的授予的其他用戶的SYSDBA或是SYSOPER權(quán)限將會(huì)丟失,需要重新的GRANT。

          設(shè)定的entries值是不能修改的,如果要修改entries的話需要重新生成口令文件,在生成口令文件之前可以先通過V$PWFILE_USERS視圖查詢出當(dāng)前被授予SYSDBA/SYSOPER權(quán)限的用戶,然后在重新生成口令文件以后重新對這些用戶授予SYSDBA/SYSOPER權(quán)限

          2、設(shè)置REMOTE_LOGIN_PASSWORDFILE為EXCLUSIVE或是SHARED

          ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE SCOPE = SPFILE ;

          3、使用SYS登陸數(shù)據(jù)庫,創(chuàng)建新的數(shù)據(jù)庫用戶

          CREATE USER test IDENTIFIED BY test ;

          4、使用GRANT命令授予新創(chuàng)建的用戶SYSDBA/SYSOPER權(quán)限

          GRANT SYSDBA TO test .

          每次在Oracle系統(tǒng)里面使用GRANT SYSDBA/SYSOPER授予新用戶特殊權(quán)限或是ALTER USER命令修改擁有SYSDBA/SYSOPER權(quán)限的用戶密碼的時(shí)候,Oracle都會(huì)自動(dòng)的修改口令文件,增加或是修改相應(yīng)的項(xiàng)目,這樣保證在數(shù)據(jù)沒有打開的情況擁有特殊權(quán)限的用戶能正常的登陸數(shù)據(jù)庫以進(jìn)行管理操作。

          實(shí)驗(yàn)

          上面長篇大論的說了那么多,下面我們來做實(shí)驗(yàn)驗(yàn)證一下。實(shí)驗(yàn)都是基于Linux系統(tǒng)來做的,做實(shí)驗(yàn)之前先使用下面的命令創(chuàng)建一個(gè)口令文件:

          [oracle@RHEL4 ~]$ orapwd file='$ORACLE_HOME/dbs/orapw$ORACLE_SID' password=pwd entries=10 force=y

          1、驗(yàn)證OS認(rèn)證

          設(shè)置SQLNET.ORA中參數(shù)SQLNET.AUTHENTICATION_SERVICES = (ALL)或是不設(shè)置,REMOTE_LOGIN_PASSWORDFILE = NONE,然后進(jìn)行下面的操作。

          本地使用下面兩種方式登陸,都能成功

          [oracle@RHEL4 dbs]$ sqlplus / as sysdba

          SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jun 7 15:06:55 2008

          Copyright (c) 1982, 2005, Oracle.? All rights reserved.


          Connected to:
          Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
          With the Partitioning, OLAP and Data Mining options

          SQL>
          [oracle@RHEL4 dbs]$ sqlplus aaa/bbb as sysdba

          SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jun 7 15:16:25 2008

          Copyright (c) 1982, 2005, Oracle.? All rights reserved.


          Connected to:
          Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
          With the Partitioning, OLAP and Data Mining options

          SQL>

          遠(yuǎn)程使用口令文件方式登陸,失敗

          D:\Oracle\SQLPlus10.2> sqlplus sys/pwd@192.168.0.201/orcl as sysdba

          SQL*Plus: Release 10.2.0.4.0 - Production on Sat Jun 7 19:06:55 2008

          Copyright (c) 1982, 2007, Oracle.? All Rights Reserved.

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

          Enter user-name:

          2、兩種認(rèn)證都失效

          設(shè)置SQLNET.ORA中參數(shù)SQLNET.AUTHENTICATION_SERVICES = (NONE),REMOTE_LOGIN_PASSWORDFILE = NONE,然后進(jìn)行下面的操作。

          本地使用下面兩種方式登陸,都失敗

          [oracle@RHEL4 ~]$ sqlplus / as sysdba

          SQL*Plus: Release 10.2.0.1.0 - Production on Sat Jun 7 19:22:05 2008

          Copyright (c) 1982, 2005, Oracle.? All rights reserved.

          ERROR:
          ORA-01031: insufficient privileges

          Enter user-name:
          [oracle@RHEL4 ~]$ sqlplus sys/pwd as sysdba

          SQL*Plus: Release 10.2.0.1.0 - Production on Sat Jun 7 19:22:46 2008

          Copyright (c) 1982, 2005, Oracle.? All rights reserved.

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

          Enter user-name:

          遠(yuǎn)程使用口令文件方式登陸,失敗

          D:\Oracle\SQLPlus10.2> sqlplus sys/pwd@192.168.0.201/orcl as sysdba

          SQL*Plus: Release 10.2.0.4.0 - Production on Sat Jun 7 19:06:55 2008

          Copyright (c) 1982, 2007, Oracle.? All Rights Reserved.

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

          Enter user-name:

          3、驗(yàn)證口令文件認(rèn)證

          設(shè)置SQLNET.ORA中參數(shù)SQLNET.AUTHENTICATION_SERVICES = (NONE)不設(shè)置,REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE或SHARED,然后進(jìn)行下面的操作。

          本地使用驗(yàn)證OS認(rèn)證,失敗

          [oracle@RHEL4 ~]$ sqlplus / as sysdba

          SQL*Plus: Release 10.2.0.1.0 - Production on Sat Jun 7 19:16:56 2008

          Copyright (c) 1982, 2005, Oracle.? All rights reserved.

          ERROR:
          ORA-01031: insufficient privileges

          Enter user-name:

          本地驗(yàn)證口令文件認(rèn)證,成功

          [oracle@RHEL4 ~]$ sqlplus sys/pwd as sysdba
          SQL*Plus: Release 10.2.0.1.0 - Production on Sat Jun 7 19:26:48 2008

          Copyright (c) 1982, 2005, Oracle.? All rights reserved.

          Connected to:
          Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
          With the Partitioning, OLAP and Data Mining options

          SQL>

          遠(yuǎn)程使用口令文件認(rèn)證,成功

          D:\Oracle\SQLPlus10.2> sqlplus sys/pwd@192.168.0.201/orcl as sysdba

          SQL*Plus: Release 10.2.0.4.0 - Production on Sat Jun 7 19:21:18 2008

          Copyright (c) 1982, 2007, Oracle.? All Rights Reserved.

          Connected to:
          Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
          With the Partitioning, OLAP and Data Mining options

          SYS@192.168.0.201/orcl>

          4、兩種認(rèn)證都成功

          設(shè)置SQLNET.ORA中參數(shù)SQLNET.AUTHENTICATION_SERVICES = (ALL),REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE,然后進(jìn)行下面的操作。

          本地使用驗(yàn)證OS認(rèn)證,成功

          [oracle@RHEL4 ~]$ sqlplus / as sysdba

          SQL*Plus: Release 10.2.0.1.0 - Production on Sat Jun 7 19:30:33 2008

          Copyright (c) 1982, 2005, Oracle.? All rights reserved.

          Connected to:
          Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
          With the Partitioning, OLAP and Data Mining options

          SQL>

          遠(yuǎn)程使用口令文件認(rèn)證,成功

          D:\Oracle\SQLPlus10.2> sqlplus sys/pwd@192.168.0.201/orcl as sysdba

          SQL*Plus: Release 10.2.0.4.0 - Production on Sat Jun 7 19:27:11 2008

          Copyright (c) 1982, 2007, Oracle.? All Rights Reserved.
          Connected to:

          Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
          With the Partitioning, OLAP and Data Mining options

          SYS@192.168.0.201/orcl>

          5、將SYSDBA/SYSOPER權(quán)限授權(quán)給其它數(shù)據(jù)庫帳戶

          先查看口令文件的修改時(shí)間

          [oracle@RHEL4 dbs]$ ll orapworcl
          -rw-r-----? 1 oracle oinstall? 2560 Jun? 7 19:04 orapworcl

          用SYS登陸數(shù)據(jù)庫,創(chuàng)建新用戶test,并賦予SYSDBA權(quán)限

          [oracle@RHEL4 dbs]$ sqlplus / as sysdba

          SQL*Plus: Release 10.2.0.1.0 - Production on Sat Jun 7 21:41:36 2008

          Copyright (c) 1982, 2005, Oracle.? All rights reserved.

          Connected to:
          Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
          With the Partitioning, OLAP and Data Mining options

          SQL>
          SQL > create user test identified by test ;
          User created
          .
          SQL > grant sysdba to test
          ;
          Grant succeeded .
          SQL>exit
          Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
          With the Partitioning, OLAP and Data Mining options

          再看口令文件,已經(jīng)修改了

          [oracle@RHEL4 dbs]$ ll orapworcl
          -rw-r-----? 1 oracle oinstall? 2560 Jun? 7 21:42 orapworcl

          再用新的test帳號登陸,能成功的登陸

          D:\Oracle\SQLPlus10.2&gt;sqlplus test/test@192.168.0.201/orcl as sysdba

          SQL*Plus: Release 10.2.0.4.0 - Production on Sat Jun 7 21:32:37 2008

          Copyright (c) 1982, 2007, Oracle.? All Rights Reserved.

          Connected to:
          Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
          With the Partitioning, OLAP and Data Mining options

          SYS@192.168.0.201/orcl>

          說明:如果要取消SYSDBA權(quán)限只需要運(yùn)行下面的語句就可以了

          SQL > revoke sysdba from test ;

          常見問題說明

          1、如何查找擁有SYSDBA或是SYSOPER權(quán)限的用戶

          使用視圖V$PWFILE_USERS,結(jié)果集中的SYSDB和SYSOP分別代表是否有SYSDBA和SYSOPER權(quán)限。

          SQL > select * from v $ pwfile_users ;
          /**
          USERNAME?????????????????????? SYSDB SYSOP
          ------------------------------ ----- -----
          SYS??????????????????????????? TRUE? TRUE
          TEST?????????????????????????? TRUE? FALSE
          */

          2、授予權(quán)限時(shí)出現(xiàn)”O(jiān)RA-01994: GRANT failed: password file missing or disabled”

          出現(xiàn)這種情況是因?yàn)闆]有創(chuàng)建口令文件,或者是口令文件放置的目錄不正確,Oracle找不到。只要重建或?qū)⒖诹钗募糜?ORACLE_HOME/dbs/目錄中就可以了。

          3、忘記了SYS帳號的密碼怎么辦?

          如果數(shù)據(jù)庫啟用的OS認(rèn)證登陸,則可以用OS認(rèn)證登陸數(shù)據(jù)庫,然后使用下面的命令進(jìn)行修改

          alter user SYS identified by pwd ;

          如果沒有啟用OS認(rèn)證登陸,則需要用orapwd重建口令文件

          orapwd file='$ORACLE_HOME/dbs/orapw$ORACLE_SID' password=pwd entries=10 force=y

          其中的password項(xiàng)所指定的就是SYS的密碼

          參考文檔

          發(fā)表于 2008-06-08 @ 00:37:07 · 歸類于 Basics , Oracle · 瀏覽(620)

          ?

          posted on 2008-11-05 21:49 decode360 閱讀(518) 評論(0)  編輯  收藏 所屬分類: 08.DBA
          主站蜘蛛池模板: 扶风县| 墨脱县| 贺兰县| 泰州市| 襄垣县| 江门市| 甘德县| 黑河市| 南通市| 玉屏| 民权县| 通城县| 徐闻县| 宜川县| 绿春县| 花莲县| 巍山| 旬阳县| 名山县| 福鼎市| 彩票| 昭觉县| 奉化市| 湾仔区| 确山县| 二连浩特市| 化隆| 江陵县| 前郭尔| 咸丰县| 大理市| 禹州市| 乌兰县| 高尔夫| 都昌县| 丹江口市| 淳化县| 朝阳市| 禹城市| 石门县| 平舆县|