來自: http://blog.sina.com.cn/s/blog_7c7ec19b0100twbb.html網頁鏈接
概念:
SYS用戶是Oracle中許可權最高的用戶,而SYSTEM是一個用於資料庫管理的用戶。在資料庫安裝完之後,應立即修改SYS,SYSTEM這兩個用戶的口令,以保證資料庫的安全。
可以用三種方法修改口令:
sqlplus / as sysdba;
1.sql> alter user sys identified by 123456
2.sql>grant connect to sys identified by 123456
3.sql>password system (註:此命令只適用於SYSTEM)
SYS和SYSTEM用戶之間可以相互修改口令
但是請注意,將修改完口令修改成123456後,按以下幾種方法登錄:
sqlplus / as sysdba;
sqlplus sys/abcde as sysdba;
sqlplus sys/ as sysdba;
sqlplus sys as sysdba;
都可以登錄成功,然後查看當前用戶:
sql>show user
顯示 user is 'SYS'。
這是為什麼呢,為什麼修改了口令沒有效果,不用口令或者隨便用什麼口令都可以進入呢。
答案是:認證方法。
oracle的口令認證
SYS口令認證分為操作系統認證和Oracle認證方法。
1.在操作系統認證方式下,
對於如果是Unix操作系統,只要舊以DBA組中的用戶登錄的操作系統,就可以以SYSDBA的身份登錄資料庫,不會驗證SYS的口令。
對於windows操作系統,在oracle資料庫安裝後,會自動在操作系統中安裝一個名為ORA_DBA的用戶組,只要是該組中的用戶,即可以SYSDBA的身份登錄資料庫而不會驗證SYS的口令。也可以創建名為ORA_SID_DBA(SID為實例名)的用戶組,屬於該用戶組的用戶也可以具備以上特權。
如何修改認證方式
接下說一說,如何修改認證方式為操作系統認證或oracle認證。(windows,unix平台有大同小異)
要將認證方式設置為操作系統認證:
1.修改參數REMOTE_LOGIN_PASSWORDFILE為NONE
2.修改SQLNET.ORA文件,此文件所在目錄為:...oracleproct10.1.0db_1
etworkadminsqlnet.ora。在其中添加這一行:SQLNET.AUTENTICATION_SERVICES=(NTS)
3.重新啟動資料庫。
要將認證方式設置為oracle認證(口令文件認證):
1.修改參數REMOTE_LOGIN_PASSWORDFILE為EXCLUSIVE或SHARED。其中,exclusive表示僅有一個實例可以使用口令文件。shared表口令文件可以供多個實例使用。
2.修改SQLNET.ORA文件,在SQLNET.AUTENTICATION_SERVICES=(NTS)前加#號,即#SQLNET.AUTENTICATION_SERVICES=(NTS)
3.重新啟動資料庫。
如果發生sys口令丟失的情況,怎麼辦?
1.使用system用戶進行口令更改
2.如果存在密碼文件,則刪除它(一般路徑在..oracleproctxx.x.xdb_1database下)然後創建密碼文件--cmd下輸入
orapwd file=FILEPATHpwd<sid> password=PASSWORD entries=N
其中FILEPATH表示密碼文件路徑,密碼文件的格式為pwd<sid>,sid是資料庫實例名。
在unix下為orapwd<sid>。
B. 如何用命令登陸oracle的SYS用戶
Oracle關系資料庫系統以其卓越的性能獲得了廣泛的應用,而保證資料庫的安全性是資料庫管理工作的重要內容。本文是筆者在總結Oracle資料庫安全管理工作的基礎上,對Oracle資料庫系統密碼文件的創建、使用和維護作了詳細的介紹,供大家參考。
關鍵詞:Oracle資料庫
密碼文件
在Oracle資料庫系統中,用戶如果要以特權用戶身份(INTERNAL/SYSDBA/SYSOPER)登錄Oracle資料庫可以有兩種身份驗證的方法:即使用與操作系統集成的身份驗證或使用Oracle資料庫的密碼文件進行身份驗證。因此,管理好密碼文件,對於控制授權用戶從遠端或本機登錄Oracle資料庫系統,執行資料庫管理工作,具有重要的意義。
Oracle資料庫的密碼文件存放有超級用戶INTERNAL/SYS的口令及其他特權用戶的用戶名/口令,它一般存放在ORACLE_HOME\DATABASE目錄下。
一、 密碼文件的創建:
在使用Oracle Instance Manager創建一資料庫實例的時侯,在ORACLE_HOME\DATABASE目錄下還自動創建了一個與之對應的密碼文件,文件名為PWDSID.ORA,其中SID代表相應的Oracle資料庫系統標識符。此密碼文件是進行初始資料庫管理工作的基礎。在此之後,管理員也可以根據需要,使用工具ORAPWD.EXE手工創建密碼文件,命令格式如下:
C:\ >ORAPWD
FILE=< FILENAME >
PASSWORD =< PASSWORD > ENTRIES=< MAX_USERS >
各命令參數的含義為:
---- FILENAME:密碼文件名;
---- PASSWORD:設置INTERNAL/SYS帳號的口令;
---- MAX_USERS:密碼文件中可以存放的最大用戶數,對應於允許以SYSDBA/SYSOPER許可權登錄資料庫的最大用戶數。由於在以後的維護中,若用戶數超出了此限制,則需要重建密碼文件,所以此參數可以根據需要設置得大一些。
有了密碼文件之後,需要設置初始化參數REMOTE_LOGIN_PASSWORDFILE來控制密碼文件的使用狀態。
二、 設置初始化參數REMOTE_LOGIN_PASSWORDFILE:
在Oracle資料庫實例的初始化參數文件中,此參數控制著密碼文件的使用及其狀態。它可以有以下幾個選項:
NONE:指示Oracle系統不使用密碼文件,特權用戶的登錄通過操作系統進行身份驗證;
EXCLUSIVE:指示只有一個資料庫實例可以使用此密碼文件。只有在此設置下的密碼文件可以包含有除INTERNAL/SYS以外的用戶信息,即允許將系統許可權SYSOPER/SYSDBA授予除INTERNAL/SYS以外的其他用戶。
SHARED:指示可有多個資料庫實例可以使用此密碼文件。在此設置下只有INTERNAL/SYS帳號能被密碼文件識別,即使文件中存有其他用戶的信息,也不允許他們以SYSOPER/SYSDBA的許可權登錄。此設置為預設值。
在REMOTE_LOGIN_PASSWORDFILE參數設置為EXCLUSIVE、SHARED情況下,Oracle系統搜索密碼文件的次序為:在系統注冊庫中查找ORA_SID_PWFILE參數值(它為密碼文件的全路徑名);若未找到,則查找ORA_PWFILE參數值;若仍未找到,則使用預設值ORACLE_HOME\DATABASE\PWDSID.ORA;其中的SID代表相應的Oracle資料庫系統標識符。
三、 向密碼文件中增加、刪除用戶:
當初始化參數REMOTE_LOGIN_PASSWORDFILE設置為EXCLUSIVE時,系統允許除INTERNAL/SYS以外的其他用戶以管理員身份從遠端或本機登錄到Oracle資料庫系統,執行資料庫管理工作;這些用戶名必須存在於密碼文件中,系統才能識別他們。由於不管是在創建資料庫實例時自動創建的密碼文件,還是使用工具ORAPWD.EXE手工創建的密碼文件,都只包含INTERNAL/SYS用戶的信息;為此,在實際操作中,可能需要向密碼文件添加或刪除其他用戶帳號。
由於僅被授予SYSOPER/SYSDBA系統許可權的用戶才存在於密碼文件中,所以當向某一用戶授予或收回SYSOPER/SYSDBA系統許可權時,他們的帳號也將相應地被加入到密碼文件或從密碼文件中刪除。由此,向密碼文件中增加或刪除某一用戶,實際上也就是對某一用戶授予或收回SYSOPER/SYSDBA系統許可權。
要進行此項授權操作,需使用SYSDBA許可權(或INTERNAL帳號)連入資料庫,且初始化參數REMOTE_LOGIN_PASSWORDFILE的設置必須為EXCLUSIVE。具體操作步驟如下:
創建相應的密碼文件;
設置初始化參數REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE;
使用SYSDBA許可權登錄: CONNECT
SYS/internal_user_passsword
AS
SYSDBA;
啟動資料庫實例並打開資料庫;
創建相應用戶帳號,對其授權(包括SYSOPER和SYSDBA): 授予許可權:GRANT
SYSDBA
TO
user_name;
收回許可權:REVOKE
SYSDBA
FROM
user_name;
現在這些用戶可以以管理員身份登錄資料庫系統了;
四、 使用密碼文件登錄:
有了密碼文件後,用戶就可以使用密碼文件以SYSOPER/SYSDBA許可權登錄Oracle資料庫實例了,注意初始化參數REMOTE_LOGIN_PASSWORDFILE應設置為EXCLUSIVE或SHARED。任何用戶以SYSOPER/SYSDBA的許可權登錄後,將位於SYS用戶的Schema之下,以下為兩個登錄的例子:
1. 以管理員身份登錄:
假設用戶scott已被授予SYSDBA許可權,則他可以使用以下命令登錄:
CONNECT
scott/tiger
AS
SYSDBA
2. 以INTERNAL身份登錄:
CONNECT
INTERNAL/INTERNAL_PASSWORD
五、 密碼文件的維護:
1. 查看密碼文件中的成員:
可以通過查詢視圖V$PWFILE_USERS來獲取擁有SYSOPER/SYSDBA系統許可權的用戶的信息,表中SYSOPER/SYSDBA列的取值TRUE/FALSE表示此用戶是否擁有相應的許可權。這些用戶也就是相應地存在於密碼文件中的成員。
2. 擴展密碼文件的用戶數量:
當向密碼文件添加的帳號數目超過創建密碼文件時所定的限制(即ORAPWD.EXE工具的MAX_USERS參數)時,為擴展密碼文件的用戶數限制,需重建密碼文件,具體步驟如下:
a) 查詢視圖V$PWFILE_USERS,記錄下擁有SYSOPER/SYSDBA系統許可權的用戶信息;
b) 關閉資料庫;
c) 刪除密碼文件;
d) 用ORAPWD.EXE新建一密碼文件;
e) 將步驟a中獲取的用戶添加到密碼文件中。
3. 修改密碼文件的狀態:
密碼文件的狀態信息存放於此文件中,當它被創建時,它的預設狀態為SHARED。可以通過改變初始化參數REMOTE_LOGIN_PASSWORDFILE的設置改變密碼文件的狀態。當啟動資料庫事例時,Oracle系統從初始化參數文件中讀取REMOTE_LOGIN_PASSWORDFILE參數的設置;當載入資料庫時,系統將此參數與口令文件的狀態進行比較,如果不同,則更新密碼文件的狀態。若計劃允許從多台客戶機上啟動資料庫實例,由於各客戶機上必須有初始化參數文件,所以應確保各客戶機上的初始化參數文件的一致性,以避免意外地改變了密碼文件的狀態,造成資料庫登陸的失敗。
4. 修改密碼文件的存儲位置:
密碼文件的存放位置可以根據需要進行移動,但作此修改後,應相應修改系統注冊庫有關指向密碼文件存放位置的參數或環境變數的設置。
5. 刪除密碼文件:
在刪除密碼文件前,應確保當前運行的各資料庫實例的初始化參數REMOTE_LOGIN_PASSWORDFILE皆設置為NONE。在刪除密碼文件後,若想要以管理員身份連入資料庫的話,則必須使用操作系統驗證的方法進行登錄
C. Oracle安裝時設的密碼遺忘了怎麼辦
樓上的方法可行。
另還有一個方法:
一般sys/system用戶的密碼都保存在ORACLE_HOME/dbs目錄下面,默認文件名為orapw<ORACLE_SID>
密碼不記得了,你可以用orapwd命令重建口令文件。
首先,刪除現在的密碼文件
在windows下
密碼文件路徑oracle_home\database
密碼文件名稱pwd+sid.ora
在unix下
密碼文件路徑oracle_home/dbs
密碼文件名稱orapw+sid
在刪除密碼文件之後,就要重建密碼文件了。重設SYS賬號的密碼是sys
orapwd file=d:/oracle/ora10/DATABASE/PWD1232.ORA password=sys entries=10;
這樣就可以了。
D. oracle資料庫密碼文件
A
database
can
use
a
password
file
to
authenticate
administrative
users
with
SYSDBA
or
SYSOPER
connection
privileges.
A
password
file
is
required
for
remote
connections
to
the
database
as
SYSDBA
or
SYSOPER.
使用orapwd去創建一個就是了,很簡單的.
格式:orapwd
file=filename
你需要遠程以sysdba登陸的話,需要密專碼屬文件驗證,否則就只能本地sysdba登陸了.