Oracle 修改SYS、system用戶密碼


 

by:授客 QQ1033553122

概念

SYS用戶是Oracle中權限最高的用戶,而SYSTEM是一個用於數據庫管理的用戶。在數據庫安裝完之后,應立即修改SYS,SYSTEM這兩個用戶的密碼,以保證數據庫的安全。

 

安裝完之后修改密碼方法

cmd命令行下輸入 sqlplus / as sysdba;

法1.SQL>alter user sys identified by huozhe

 

法2.SQL>grant connect to sys identified by 123456

 

法3. SQL> password system

更改 system 的口令

新口令:

重新鍵入新口令:

口令已更改

(注:法3只適用於SYSTEM)

 

驗證:

SQL> conn system/huozhe

已連接。

SQL> show user

USER 為 "SYSTEM"

SQL> exit

 

注:SYS和SYSTEM用戶之間可以相互修改口令

 

修改SYS用戶口令后的登錄

將SYS用戶的口令修改成123456后,可按以下幾種方法登錄:

法1.sqlplus / as sysdba 【以操作系統認證的方式登錄,不需要用戶名和口令】

法2.sqlplus sys/abcde as sysdba;

法3.sqlplus sys/ as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on 星期二 11月 6 19:10:54 2012

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

 

輸入口令:

注意:這里提示輸入口令,不輸入口令直接回車

連接到:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing optionssqlplus sys as sysdba;

上述語句,都可以登錄成功,然后查看當前用戶:

SQL> show user

USER 為 "SYS"

這是為什么呢,為什么修改了口令沒有效果,不用口令或者隨便用什么口令都可以進入呢。

答案是:認證方法。

 

oracle的口令認證

SYS口令認證分為操作系統認證和Oracle認證方法。

 

操作系統認證方式

對於如果是Unix操作系統,只要是以DBA組中的用戶登錄的操作系統,就可以以SYSDBA的身份登錄數據庫,不會驗證SYS的口令。

 

對於windows操作系統,在oracle數據庫安裝后,會自動在操作系統中安裝一個名為ORA_DBA的用戶組,只要是該組中的用戶,即可以SYSDBA的身份登錄數據庫而不會驗證SYS的口令。也可以創建名為ORA_SID_DBA(SID為實例名)的用戶組,屬於該用戶組的用戶也具備以上特權。

 

如何修改認證方式

如何修改認證方式為操作系統認證或oracle認證。(windows,unix平台有大同小異)

 

要將認證方式設置為操作系統認證:

  1. 修改sqlnet.ora文件

….\ product\11.2.0\ dbhome_2\ NETWORK\ADMIN\sqlnet.ora

…\product\版本號\home目錄\ NETWORK\ADMIN\sqlnet.ora

記事本打開該文件,修改參數為:

SQLNET.AUTHENTICATION_SERVICES= (NTS)

WINDOWS下,默認就是這樣,即使用NT認證

 

  1. 修改init.ora文件

….\ product\11.2.0\dbhome_2\dbs\init.ora

說明:…\product\版本號\home目錄\dbs\init.ora

 

記事本打開該文件,修改參數為:

remote_login_passwordfile='NONE'

 

3.重新啟動數據庫。

SQL> shutdown immediate

SQL> startup open

 

將認證方式設置為oracle認證(密碼文件認證):

  1. 同上,修改sqlnet.ora

….\ product\11.2.0\ dbhome_2\ NETWORK\ADMIN\sqlnet.ora

記事本打開該文件,修改參數為:

#SQLNET.AUTHENTICATION_SERVICES= (NTS) ,#注釋掉這句話,即不使用NT認證

或者

SQLNET.AUTHENTICATION_SERVICES= (NONE)

 

  1. 同上,修改init.ora

記事本打開該文件,修改參數為:

remote_login_passwordfile='EXCLUSIVE'

或者

remote_login_passwordfile='SHARED'

 

EXCLUSIVE表示只有當前實例使用這個密碼文件,且允許有別的用戶作為SYSDBA登錄進入系統,若選擇了SHARED,則表示不止一個實例使用這個密碼文件。

 

3.重新啟動數據庫。

SQL> shutdown immediate

SQL> startup open

 

如果發生sys密碼丟失的情況,怎么辦?

步驟1.使用system用戶進行密碼更改

SQL> conn system/huozhe

已連接。

SQL> alter user sys identified by huozhe

 

說明:

1)默認情況下,只要用戶具有alter   user的權限,那么可以修改 oracle中任意用戶,包括alter   user中的所有optional

 

2)默認情況下,system賬戶之所以能修改sys的密碼,是因為它屬於dba角色,而dba角色當然具有alter   user權限

 

SQL> select * from v$pwfile_users;

 

USERNAME                       SYSDB SYSOP SYSAS

------------------------------ ----- ----- -----

SYS                            TRUE  TRUE  FALSE

STUDY                          TRUE  FALSE FALSE

說明現在有sys及STUDY賬戶擁有sysdba與sysoper的權限[STUDY默認創建的]。

 

步驟2.創建密碼文件

如果存在密碼文件(PWDsid.ora),則刪除它

路徑

….\product\11.2.0\dbhome_2\database\PWDorcl.ora

….\product\版本\home目錄\database\PWDsid.ora

 

然后用orapwd.exe創建密碼文件

orapwd路徑

…\product\11.2.0\dbhome_2\BIN\orapwd.exe

說明:…\product\版本號\home目錄\BIN\orapwd.exe

 

--cmd下輸入 cd 命令進入到….\product\版本號\home目錄\BIN 目錄下,然后鍵入命令

orapwd file=filepath\pwd.ora password=password_of_sys entries=N

 

其中filepath表示密碼文件路徑,pwd.ora為密碼文件名,sid是數據庫實例名

eg:

E:\app\Administrator\product\11.2.0\dbhome_2\dbs\PWDorcl.ora

 

entries表示允許最大的超級用戶數。

當沒有指定文件路徑時,密碼文件默認存放在…\product\版本號\dbs\目錄下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM