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 \ >ORAPWDFILE=< 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許可權登錄
CONNECTSYS/internal_user_passswordASSYSDBA
啟動資料庫實例並打開資料庫
創建相應用戶帳號 對其授權(包括SYSOPER和SYSDBA)
授予許可權 GRANTSYSDBATOuser_name
收回許可權 REVOKESYSDBAFROMuser_name
現在這些用戶可以以管理員身份登錄資料庫系統了
四 使用密碼文件登錄
有了密碼文件後 用戶就可以使用密碼文件以SYSOPER/SYSDBA許可權登錄Oracle資料庫實例了 注意初始化參數REMOTE_LOGIN_PASSWORDFILE應設置為EXCLUSIVE或SHARED 任何用戶以SYSOPER/SYSDBA的許可權登錄後 將位於SYS用戶的Schema之下 以下為兩個登錄的例子
以管理員身份登錄
假設用戶scott已被授予SYSDBA許可權 則他可以使用以下命令登錄
CONNECTscott/tigerASSYSDBA
以INTERNAL身份登錄
CONNECTINTERNAL/INTERNAL_PASSWORD
五 密碼文件的維護
查看密碼文件中的成員
可以通過查詢視圖V$PWFILE_USERS來獲取擁有SYSOPER/SYSDBA系統許可權的用戶的信息 表中SYSOPER/SYSDBA列的取值TRUE/FALSE表示此用戶是否擁有相應的許可權 這些用戶也就是相應地存在於密碼文件中的成員
擴展密碼文件的用戶數量
當向密碼文件添加的帳號數目超過創建密碼文件時所定的限制(即ORAPWD EXE工具的MAX_USERS參數)時 為擴展密碼文件的用戶數限制 需重建密碼文件 具體步驟如下
(a)查詢視圖V$PWFILE_USERS 記錄下擁有SYSOPER/SYSDBA系統許可權的用戶信息
(b)關閉資料庫
(c) 刪除密碼文件
(d) 用ORAPWD EXE新建一密碼文件
(e) 將步驟a中獲取的用戶添加到密碼文件中
修改密碼文件的狀態
密碼文件的狀態信息存放於此文件中 當它被創建時 它的預設狀態為SHARED 可以通過改變初始化參數REMOTE_LOGIN_PASSWORDFILE的設置改變密碼文件的狀態 當啟動資料庫事例時 Oracle系統從初始化參數文件中讀取REMOTE_LOGIN_PASSWORDFILE參數的設置 當載入資料庫時 系統將此參數與口令文件的狀態進行比較 如果不同 則更新密碼文件的狀態 若計劃允許從多台客戶機上啟動資料庫實例 由於各客戶機上必須有初始化參數文件 所以應確保各客戶機上的初始化參數文件的一致性 以避免意外地改變了密碼文件的狀態 造成資料庫登陸的失敗
修改密碼文件的存儲位置
密碼文件的存放位置可以根據需要進行移動 但作此修改後 應相應修改系統注冊庫有關指向密碼文件存放位置的參數或環境變數的設置
刪除密碼文件
在刪除密碼文件前 大家應當確保當前運行的各資料庫實例的初始化參數REMOTE_LOGIN_PASSWORDFILE皆設置為NONE
lishixin/Article/program/Oracle/201311/18956
❷ Oracle資料庫中文件加密詳解
在Oracle資料庫系統中 用戶如果要以特權用戶身份登錄Oracle資料庫可以有兩種身份驗證的方法 即使用與操作系統集成的身份驗證或使用Oracle資料庫的密碼文件進行身份驗證 因此 管理好密碼文件 對於控制授權用戶從遠端或本機登錄Oracle資料庫系統 執行資料庫管理工作 具有重要的意義
Oracle資料庫的密碼文件存放有超級用戶INTERNAL/SYS的口令及其他特權用戶的用戶名/口令 它一般存放在ORACLE_HOMEDATABASE目錄下
創建密碼文件
在使用Oracle Instance Manager創建一資料庫實例的時侯 在ORACLE_HOMEDATABASE目錄下還自動創建了一個與之對應的密碼顫喊派文件 文件名為PWDSID ORA 其中SID代表相應的Oracle資料庫系統標識符 此密碼文件是進行初始資料庫管理工作的基矗在此之後 管理員也可以根據需要 使用工具ORAPWD EXE手工創建密碼文件 命令格式如下
C: >ORAPWDFILE=< FILENAME >PASSWORD =< PASSWORD > ENTRIES=< MAX_USERS >
各命令參數的含義為
FILENAME 密碼文件名;
PASSWORD 設置INTERNAL/SYS帳號的口令
MAX_USERS 密碼文件中可以存放的最大用戶數 對應於允許以SYSDBA/SYSOPER許可權登錄資料庫的最大用戶數 由於在以後的維護中 若用戶數超出了此限制 則需要重建密碼文件 所以此參數可以根據需要設置得大一些
有了密碼文件之後 需要設置初始化參數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_HOMEDATABASEPWDSID 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許可權登錄 CONNECTSYS/internal_user_passswordASSYSDBA;
啟動資料庫實例並打開資料庫;
創建相應用戶帳號 對其授權(包括SYSOPER和SYSDBA) 授予許可權 GRANTSYSDBATOuser_name;
收回許可權 REVOKESYSDBAFROMuser_name 現在這些用戶可以以管理員身份登錄資料庫系統了
使用密碼文件登錄
有了密碼文件後 用戶就可以使用密碼文件以SYSOPER/SYSDBA許可權登錄Oracle資料庫實例了 注意初始化參數REMOTE_LOGIN_PASSWORDFILE應設置為EXCLUSIVE或SHARED 任何用戶以SYSOPER/SYSDBA的許可權登錄後 將位於SYS用戶的Schema之下 以下為兩個登錄的例子
以管理員身份登錄
假設用戶scott已被授予SYSDBA許可權 則他可以使用以下命令登錄
CONNECTscott/tigerASSYSDBA
以INTERNAL身份登錄
CONNECTINTERNAL/INTERNAL_PASSWORD
保護密碼文件
查看密碼文件中的成員
可以通過查詢視圖V$PWFILE_USERS來獲取擁有SYSOPER/SYSDBA系統許可權的用戶的信息 表中SYSOPER/SYSDBA列的取值TRUE/FALSE表示此用戶是否擁有相應的許可權 這些用戶也就是相應地存在於密碼文件中的成員
修改密碼文件的狀態
密碼文件的狀態信息存放於此文件中 當它被創建時 它的預設狀態為SHARED 可以通過改變初始化參數REMOTE_LOGIN_PASSWORDFILE的設置改變密碼文件的狀態 當啟動資料庫事例時 Oracle系統從初始化參數文件中讀取REMOTE_LOGIN_PASSWORDFILE參數的設置;當載入資料庫時 系統將此參數與口令文件的狀態進行比較 如果不同 則更新密碼文件的狀態 若計劃允許從多台客戶機上啟動資料庫實例 由於各客戶機上必須有初始化參數文件 所以應確保各客戶機上的初始化參數文件的一致性 以避免意外地改變了密碼文件的狀態 造成資料庫登陸的失敗
修改密碼文件的存儲位置
密碼文件的存放位置可以根據需要進行移動 但作此修改後 應相應修改系統注冊庫有關指向密碼文件存放位置的參數或環境變數的設置
刪除密碼文件
lishixin/Article/program/Oracle/201311/16762