sys為何不能以管理員的身份登陸

2022-03-18 05:02:23 字數 3726 閱讀 5812

概要: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。在刪除密碼檔案後,若想要以管理員身份連入資料庫的話,則必須使用作業系統驗證的方法進行登入。

lvs為何不能完全替代DNS輪詢

任何一台機器掛了,服務受不受影響 能否通過增加機器,擴充系統的效能 反向 負載均衡 請求是否均勻分攤到後端的操作單元執行 nginx 乙個高效能的web server和實施反向 的軟體 lvs linux virtual server,使用集群技術,實現在 linux作業系統層面 的乙個高效能 高可...

謠言易碎 諾基亞為何不能投靠Android陣營?

據國外科技部落格稱,諾基亞近期正在招募從事linux的工程師,並以此推測諾基亞在未來可能會投奔谷歌的android陣營,所幸的是,諾基亞 公關負責人doug dawson出來及時否認了這個猜測,並稱之為謠言。其實筆者在看到這個訊息的時候,並未感到意外,畢竟之前這種論調就出現過,只是這次出自較知名的科...

冷知識 為何不能睜眼打噴嚏

打噴嚏是人體的一種防禦性呼吸反射,它從深吸氣開始,然後膈肌突然收縮,產生一急速有力的呼氣動作,這時,人會張大嘴巴,一股氣體從口鼻衝出,於是就會啊嚏啊嚏打噴嚏了。打噴嚏時為什麼會閉眼睛?這是乙個很有意思的問題。一方面,打噴嚏時要用很大的力量逐出氣體,肺內 口腔內 鼻腔內都有很大的壓力,不單膈肌和肋間肌...