Oracle 12c DG管理-分離SYS特權使用者
Oracle 資料庫日常運維中的對於使用者的管理,我們堅持合理授權,安全第一,許可權最小,按需授予,責任分離的原則進行合理授權。基於安全考慮大多使用者在不影響現有生產環境的前提下回收了非必要的 SYS 特權,本文主要介紹使用非 sys 使用者進行 DG 管理。我們使用 12c 的 SYSDG 角色和設定 REDO_TRANSPORT_USER 引數可以實現 SYS 特權使用者的分離。
在建立 Oracle12c 資料庫時,為了方便資料庫管理員的分工,會自動建立如下使用者 :SYSBACKUP 、 SYSDG 、 SYSKM 。
SYSDG 便於資料保護操作。使用者可以使用 Data Guard Broker 或 DGMGRL 命令列介面執行操作。
SYSDG 使用者,具有 SYSDG 管理員許可權,可以執行 Data Guard 操作。
您可以在 Data Guard Broker 或 DGMGRL 命令列介面上使用此特權。為了使用密碼以 SYSDG 的身份連線資料庫,您必須為它建立一個密碼檔案。不能將 SYSYSDG 管理員許可權授予建立時沒有身份驗證的使用者。
SYSDG 許可權可以執行以下操作 :
·
STARTUP
·
SHUTDOWN
·
ALTER DATABASE
·
ALTER SESSION
·
ALTER SYSTEM
·
CREATE RESTORE POINT
(including
GUARANTEED
restore points)
·
CREATE SESSION
·
DROP RESTORE POINT
(including
GUARANTEED
restore points)
·
FLASHBACK DATABASE
·
SELECT ANY DICTIONARY
·
SELECT
·
X$
tables (that is, the fixed tables)
·
V$
and
GV$
views (that is, the dynamic performance views)
·
APPQOSSYS.WLM_CLASSIFIER_PLAN
·
DELETE
·
APPQOSSYS.WLM_CLASSIFIER_PLAN
·
EXECUTE
·
SYS.DBMS_DRS
透過設定REDO_TRANSPORT_USER引數調整DG同步使用者。 REDO_TRANSPORT_USER 指定當遠端登入密碼檔案用於重做傳輸身份驗證時,使用其密碼驗證器的使用者名稱。該使用者必須具有 SYSOPER 許可權,並且在啟動重做傳輸會話的資料庫和重做傳輸會話的目標資料庫中必須具有相同的密碼。
該引數值區分大小寫,必須與 V$PWFILE_USERS 檢視中 USERNAME 列的值完全匹配。該行的 SYSOPER 列的值也必須為 TRUE 。
如果未指定此引數,則當使用遠端登入密碼檔案進行重做傳輸身份驗證時,將使用 SYS 使用者的密碼驗證器。
以下是實施步驟:
1、 確認資料庫版本 SQL> select BANNER from v$version; BANNER ---------------------------------------------------------------------- Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production PL/SQL Release 12.2.0.1.0 - Production CORE 12.2.0.1.0 Production TNS for Linux: Version 12.2.0.1.0 - Production NLSRTL Version 12.2.0.1.0 – Production SQL> select name,cdb from v$database; NAME CDB --------- --- CDB122 YES 2、 在主庫新建DG維護使用者。 12c多租戶環境下DG是基於CDB的搭建並進行管理的,所以這裡我們建立公共使用者。 SQL> create user c##dgadmin identified by Oracle_123 2 password expire; User created. SQL> col username for a20 SQL> col account_status for a20 SQL> col common for a20 SQL> col con_id for 99999 SQL> select USERNAME,ACCOUNT_STATUS,COMMON,CON_ID from cdb_users where username='C##DGADMIN'; USERNAME ACCOUNT_STATUS COMMON CON_ID --------------- -------------------- ---------- ------- C##DGADMIN EXPIRED YES 1 C##DGADMIN EXPIRED YES 3 3、 給使用者授權 SQL> grant sysoper,sysdg,connect to C##DGADMIN; Grant succeeded. 4、 確認v$pwfile_users 在主庫執行以下語句,確保C##DGADMIN的SYSDG和SYSOPER為true。 SQL> select username,sysdba,sysoper,sysdg from v$pwfile_users; USERNAME SYSDBA SYSOPER SYSDG -------------------- -------------------- -------------------- ---------- SYS TRUE TRUE FALSE SYSDG FALSE FALSE TRUE SYSBACKUP FALSE FALSE FALSE SYSKM FALSE FALSE FALSE C##DGADMIN FALSE TRUE TRUE SQL> 5、 確認主庫口令檔案位置 srvctl config database -db cdb122 Password file: +data/cdb122/orapwdcdb122 6、 將主庫的密碼檔案複製到備庫 主庫: su -grid asmcmd ASMCMD>cp +data/cdb122/orapwdcdb122 /home/grid 以grid使用者將密碼檔案從主庫傳輸到備庫 scp orapwdcdb122 grid@stdb:/home/grid 備庫: asmcmd ASMCMD>cp /home/grid/orapwdcdb122 +data/stdbcdb122/orapwdcdb122 7、 確認密碼檔案是否生效 在主庫執行以下語句,確保C##DGADMIN的SYSDG和SYSOPER為true。 SQL> select username,sysdba,sysoper,sysdg from v$pwfile_users; USERNAME SYSDBA SYSOPER SYSDG -------------------- -------------------- -------------------- -------------------- SYS TRUE TRUE FALSE SYSDG FALSE FALSE TRUE SYSBACKUP FALSE FALSE FALSE SYSKM FALSE FALSE FALSE C##DGADMIN FALSE TRUE TRUE 8、修改REDO_TRANSPORT_USER引數 主庫 SQL>sqlplus / as sysdba SQL>alter system set redo_transport_user= C##DGADMIN scope=both; 備庫 SQL>sqlplus / as sysdba SQL>alter system set redo_transport_user= C##DGADMIN scope=both; 8、 重啟mrp程式 備庫: SQL>alter database recover managed standby database cancel; SQL>shutdown immediate sqlplus C##DGADMIN/Oracle_123 as sysdg SQL>startup SQL>alter database recover managed standby database using current logfile disconnect from session; 主庫: 切歸檔 SQL>alter system archive log current; 檢查歸檔日誌是否應用 SQL> select NAME,THREAD#,SEQUENCE#,REGISTRAR,APPLIED,COMPLETION_TIME from v$archived_log where name is not null and COMPLETION_TIME>sysdate-3 order by 6,3; -The end-
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28373936/viewspace-2757105/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle10g audit--審計sys使用者(as sysdba或者sysoper)特權操作行為Oracle
- Oracle之使用者、特權和角色Oracle
- Oracle 12c DG新特性Far SyncOracle
- 2 Day DBA-管理Oracle例項-關於管理帳戶和許可權-SYS和SYSTEM使用者Oracle
- 【使用者管理】oracle使用者、角色、許可權管理Oracle
- Oracle使用者、授權、角色管理Oracle
- Oracle使用者許可權管理Oracle
- Oracle DG管理Broker配置Oracle
- Oracle使用者角色許可權管理Oracle
- Oracle使用者、許可權、角色管理Oracle
- Oracle 12c PDB中碰到的DG問題Oracle
- Oracle使用者、許可權、角色管理【轉】Oracle
- 【許可權管理】Oracle中檢視、回收使用者許可權Oracle
- Oracle DG管理Redo Transport服務Oracle
- ORACLE使用者管理與許可權設定Oracle
- openGauss-控制權和訪問權分離
- oracle12c新特性(6)--備份特定使用者特權Oracle
- Oracle資料庫內部安全威脅:審計特權使用者Oracle資料庫
- Oracle使用者及角色的許可權管理[Oracle基礎]Oracle
- jumpserver 使用者,系統使用者和管理使用者 普通使用者和特權使用者 區別Server
- Oracle DG Broker配置的管理週期Oracle
- Oracle DG管理資料庫屬性Oracle資料庫
- Oracle DG環境中的管理操作Oracle
- Oracle11g 使用者與許可權管理Oracle
- 許可權管理之多租戶隔離授權
- Oracle 12c 建立 SCOTT 使用者Oracle
- Oracle 12c中建立使用者Oracle
- Oracle 使用者許可權管理與常用許可權資料字典列表Oracle
- 12c multitenant database 的使用者管理NaNDatabase
- Oracle 12c CDB&PDBs管理Oracle
- Oracle 12C TDE問題引發DG不同步案例分析Oracle
- Oracle 12c DG備庫啟動報錯standby database requires recoveryOracleDatabaseUI
- 5分鐘,徹底精通Oracle DG切換Oracle
- 3分鐘短文:任命管理員,給Laravel普通使用者提權Laravel
- oracle 許可權管理Oracle
- Oracle 12c如何建立scott使用者Oracle
- Oracle DG 管理Broker配置成員的狀態Oracle
- Oracle 12.2 建立分離JobsOracle