關於SYS使用者的驗證SYS使用者是Oracle中許可權最高的使用者,而SYSTEM是一個用於資料庫管理的使用者。在資料庫安裝完之後,應立即修改SYS,SYSTEM這兩個使用者的口令,以保證資料庫的安全。可以用三種方法修改口令:
sqlplus / as sysdba;
1.sql> alter user sys identified by 11111
2.sql>grant connect to sys identified by 11111
3.sql>password system (註:此命令只適用於SYSTEM)
SYS和SYSTEM使用者之間可以相互修改口令。
但是請注意,將修改完口令修改成11111後,按以下幾種方法登入:
sqlplus / as sysdba;
sqlplus sys/abcde as sysdba;
sqlplus sys/ as sysdba;
sqlplus sys as sysdba;
都可以登入成功,然後查看目前使用者:
sql>show user
顯示 user is 'SYS'。
這是為什麼呢,為什麼修改了口令沒有效果。
答案是:認證方法。
SYS口令認證分為作業系統認證和Oracle認證方法。
在作業系統認證方式下,對於如果是Unix作業系統,只要舊以DBA組中的使用者登入的作業系統,就可以以SYSDBA的身份登入資料庫,不會驗證SYS的口令。
對於winnt作業系統,在oracle資料庫安裝後,會自動在作業系統中安裝一個名為ORA_DBA的使用者組,只要是該組中的使用者,即可以SYSDBA的身份登入資料庫而不會驗證SYS的口令。也可以建立名為ORA_SID_DBA(SID為執行個體名)的使用者組,屬於該使用者組的使用者也可以具備以上特權。
接下說一說,如何修改認證方式為作業系統認證或oracle認證。(winnt,unix平台有大同小異)
要將認證方式設定為作業系統認證:
1.修改參數REMOTE_LOGIN_PASSWORDFILE為NONE
2.修改SQLNET.ORA檔案,此檔案所在目錄為:...\oracle\product\10.1.0\db_1\network\admin\sqlnet.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.重新啟動資料庫。
建立密碼檔案:
orapwd file=FILEPATH\pwd<sid> password=PASSWORD entries=N
其中FILEPATH表示密碼檔案路徑,密碼檔案的格式為pwd<sid>,sid是資料庫執行個體名。在unix下為orapwd<sid>。