1. 首页 > GoldenGate教程 > 正文

GoldenGate教程FG015-安全管理与权限控制

本文档详细介绍Oracle GoldenGate的安全管理与权限控制,风哥教程参考GoldenGate官方文档安全管理相关内容,适合数据库管理员和技术人员学习和参考。更多视频教程www.fgedu.net.cn

Part01-基础概念与理论知识

1.1 安全管理概念

安全管理是指通过一系列措施,保护GoldenGate系统的安全,防止未授权访问、数据泄露和系统破坏。安全管理包括物理安全、网络安全、系统安全、数据库安全和应用安全等方面。

安全管理的重要性:

  • 保护数据:防止数据泄露和篡改
  • 保护系统:防止系统被攻击和破坏
  • 合规要求:满足行业和法规的安全要求
  • 业务连续性:确保系统的安全运行

1.2 权限控制概念

权限控制是指通过设置用户权限,限制用户对系统和数据的访问范围。权限控制包括数据库权限、操作系统权限和网络权限等方面。

# 权限控制的层次

## 1. 数据库权限
– 系统权限:如CREATE SESSION、SELECT ANY TABLE等
– 对象权限:如SELECT、INSERT、UPDATE、DELETE等
– 角色权限:预定义的权限集合

## 2. 操作系统权限
– 文件系统权限:如读、写、执行权限
– 进程权限:如启动、停止进程的权限
– 系统命令权限:如执行系统命令的权限

## 3. 网络权限
– 网络访问权限:如允许特定IP访问
– 端口权限:如开放特定端口
– 防火墙规则:如配置防火墙策略

1.3 安全策略

安全策略是指为保护系统安全而制定的一系列规则和措施。安全策略包括:

  • 访问控制策略:限制用户对系统和数据的访问
  • 密码策略:规定密码的复杂度和有效期
  • 审计策略:记录用户的操作行为
  • 加密策略:对敏感数据进行加密
  • 备份策略:定期备份系统和数据

学习交流加群风哥微信: itpux-com

Part02-生产环境规划与建议

2.1 安全规划

制定GoldenGate安全规划时,需要考虑以下因素:

# 安全规划考虑因素

## 1. 安全目标
– 保护数据安全
– 保护系统安全
– 满足合规要求
– 确保业务连续性

## 2. 风险评估
– 识别潜在的安全风险
– 评估风险的影响程度
– 制定风险应对策略

## 3. 安全架构
– 网络安全架构
– 系统安全架构
– 数据库安全架构
– 应用安全架构

## 4. 安全措施
– 访问控制
– 密码管理
– 审计监控
– 加密保护
– 备份恢复

## 5. 安全培训
– 对管理员进行安全培训
– 对用户进行安全意识教育
– 定期更新安全知识

2.2 权限设计

权限设计是指根据用户的职责和需求,合理设置用户权限。权限设计的原则包括:

权限设计原则:

  • 最小权限原则:只授予用户完成工作所需的最小权限
  • 职责分离原则:不同职责的用户拥有不同的权限
  • 权限分级原则:根据用户的级别设置不同的权限
  • 定期审查原则:定期审查用户权限,确保权限的合理性

2.3 安全建议

GoldenGate安全管理的建议:

# 安全建议

## 1. 数据库安全
– 使用专用的GoldenGate用户
– 最小化用户权限
– 启用审计
– 定期更改密码

## 2. 系统安全
– 限制GoldenGate目录的访问权限
– 定期检查系统日志
– 启用防火墙
– 定期更新系统补丁

## 3. 网络安全
– 使用加密传输
– 限制网络访问范围
– 监控网络流量
– 配置网络防火墙

## 4. 配置安全
– 保护配置文件
– 加密敏感信息
– 定期备份配置
– 限制配置文件的访问权限

## 5. 监控与审计
– 监控GoldenGate进程
– 审计用户操作
– 定期检查安全日志
– 及时处理安全事件

from GoldenGate视频:www.itpux.com

Part03-生产环境项目实施方案

3.1 数据库权限配置

数据库权限配置是GoldenGate安全管理的重要组成部分。以下是具体的实施方案:

# 数据库权限配置

## 1. 创建GoldenGate用户

### 1.1 源端数据库
SQL> CREATE USER fgedu IDENTIFIED BY fgedu123;
SQL> GRANT CREATE SESSION, ALTER SESSION TO fgedu;
SQL> GRANT SELECT ANY DICTIONARY, SELECT ANY TABLE TO fgedu;
SQL> GRANT FLASHBACK ANY TABLE TO fgedu;
SQL> GRANT EXECUTE ON DBMS_FLASHBACK TO fgedu;
SQL> GRANT EXECUTE ON DBMS_LOGMNR TO fgedu;
SQL> GRANT SELECT ON V_$DATABASE TO fgedu;
SQL> GRANT SELECT ON V_$LOG TO fgedu;
SQL> GRANT SELECT ON V_$LOG_HISTORY TO fgedu;
SQL> GRANT SELECT ON V_$LOGMNR_CONTENTS TO fgedu;
SQL> GRANT SELECT ON V_$LOGMNR_PARAMETERS TO fgedu;
SQL> GRANT SELECT ON V_$LOGFILE TO fgedu;
SQL> GRANT SELECT ON V_$ARCHIVED_LOG TO fgedu;
SQL> GRANT SELECT ON V_$TRANSACTION TO fgedu;
SQL> GRANT SELECT ON V_$SESSION TO fgedu;
SQL> GRANT SELECT ON V_$MYSTAT TO fgedu;
SQL> GRANT SELECT ON V_$STATNAME TO fgedu;

### 1.2 目标端数据库
SQL> CREATE USER fgedu IDENTIFIED BY fgedu123;
SQL> GRANT CREATE SESSION, ALTER SESSION TO fgedu;
SQL> GRANT CREATE TABLE, CREATE INDEX, CREATE VIEW TO fgedu;
SQL> GRANT INSERT, UPDATE, DELETE, SELECT ON fgedu.* TO fgedu;
SQL> GRANT EXECUTE ON DBMS_FLASHBACK TO fgedu;

## 2. 配置数据库审计

### 2.1 启用审计
SQL> ALTER SYSTEM SET audit_trail=DB,EXTENDED SCOPE=SPFILE;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;

### 2.2 审计GoldenGate用户操作
SQL> AUDIT ALL BY fgedu BY ACCESS;
SQL> AUDIT SELECT TABLE, INSERT TABLE, UPDATE TABLE, DELETE TABLE BY fgedu BY ACCESS;

## 3. 配置密码管理

### 3.1 设置密码复杂度
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LENGTH 12;
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_GRACE_TIME 7;
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME 90;
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_REUSE_TIME 365;
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_REUSE_MAX UNLIMITED;

### 3.2 定期更改密码
SQL> ALTER USER fgedu IDENTIFIED BY fgedu123456;

3.2 系统权限配置

系统权限配置是GoldenGate安全管理的另一个重要组成部分。以下是具体的实施方案:

# 系统权限配置

## 1. 创建GoldenGate系统用户

### 1.1 创建用户组
$ groupadd oinstall
$ groupadd dba

### 1.2 创建用户
$ useradd -g oinstall -G dba ggate
$ passwd ggate
Changing password for user ggate.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

## 2. 配置GoldenGate目录权限

### 2.1 创建目录
$ mkdir -p /GoldenGate/app
$ mkdir -p /GoldenGate/fgdata

### 2.2 设置权限
$ chown -R ggate:oinstall /GoldenGate
$ chmod -R 755 /GoldenGate

### 2.3 限制配置文件权限
$ chmod 600 /GoldenGate/app/dirprm/*

## 3. 配置系统安全

### 3.1 启用防火墙
$ systemctl start firewalld
$ systemctl enable firewalld

### 3.2 配置防火墙规则
$ firewall-cmd –add-port=7809/tcp –permanent
success
$ firewall-cmd –reload
success

### 3.3 限制SSH访问
$ vi /etc/ssh/sshd_config
# 允许的用户
AllowUsers ggate
# 禁用root登录
PermitRootLogin no
# 禁用密码登录
PasswordAuthentication no

$ systemctl restart sshd

## 4. 配置系统审计

### 4.1 启用auditd
$ systemctl start auditd
$ systemctl enable auditd

### 4.2 配置审计规则
$ vi /etc/audit/rules.d/audit.rules
# 审计GoldenGate目录
-w /GoldenGate -p wa -k ggate

$ auditctl -R /etc/audit/rules.d/audit.rules

3.3 网络安全配置

网络安全配置是GoldenGate安全管理的重要组成部分。以下是具体的实施方案:

# 网络安全配置

## 1. 配置加密传输

### 1.1 生成密钥
$ cd /GoldenGate/app
$ openssl req -x509 -newkey rsa:2048 -keyout ggate.key -out ggate.crt -days 365 -nodes
Generating a 2048 bit RSA private key
……………..+++
………………….+++
writing new private key to ‘ggate.key’
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Beijing
Locality Name (eg, city) [Default City]:Beijing
Organization Name (eg, company) [Default Company Ltd]:FGEDU
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server’s hostname) []:fgedu.net.cn
Email Address []:admin@fgedu.net.cn

### 1.2 配置GoldenGate加密
GGSCI> edit param mgr
PORT 7809
SECUREPARAMS /GoldenGate/app/ggate.key

### 1.3 配置Data Pump加密
GGSCI> edit param DP1
RMTHOST fgedu02, MGRPORT 7809, SECURE SSL

## 2. 配置网络访问控制

### 2.1 配置iptables
$ iptables -A INPUT -p tcp -s 192.168.1.0/24 –dport 7809 -j ACCEPT
$ iptables -A INPUT -p tcp –dport 7809 -j DROP
$ service iptables save

### 2.2 配置TCP Wrapper
$ vi /etc/hosts.allow
sshd: 192.168.1.

$ vi /etc/hosts.deny
sshd: ALL

## 3. 监控网络流量

### 3.1 安装网络监控工具
$ yum install -y ntopng

### 3.2 配置网络监控
$ systemctl start ntopng
$ systemctl enable ntopng

### 3.3 查看网络流量
$ ntopng -i eth0

Part04-生产案例与实战讲解

4.1 数据库安全配置案例

以下是数据库安全配置的实战案例:

# 数据库安全配置案例

## 环境信息
数据库:fgedudb (Oracle 19c)
GoldenGate版本:21.3.0.0.0
操作系统:Oracle Linux 8.5

## 配置步骤

### 1. 创建GoldenGate用户
SQL> CREATE USER fgedu IDENTIFIED BY fgedu123;
User created.

SQL> GRANT CREATE SESSION, ALTER SESSION TO fgedu;
Grant succeeded.

SQL> GRANT SELECT ANY DICTIONARY, SELECT ANY TABLE TO fgedu;
Grant succeeded.

SQL> GRANT FLASHBACK ANY TABLE TO fgedu;
Grant succeeded.

SQL> GRANT EXECUTE ON DBMS_FLASHBACK TO fgedu;
Grant succeeded.

SQL> GRANT EXECUTE ON DBMS_LOGMNR TO fgedu;
Grant succeeded.

### 2. 配置数据库审计
SQL> ALTER SYSTEM SET audit_trail=DB,EXTENDED SCOPE=SPFILE;
System altered.

SQL> SHUTDOWN IMMEDIATE;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> STARTUP;
ORACLE instance started.

Total System Global Area 1610612736 bytes
Fixed Size 8896928 bytes
Variable Size 989855744 bytes
Database Buffers 603979776 bytes
Redo Buffers 7884800 bytes
Database mounted.
Database opened.

SQL> AUDIT ALL BY fgedu BY ACCESS;
Audit succeeded.

SQL> AUDIT SELECT TABLE, INSERT TABLE, UPDATE TABLE, DELETE TABLE BY fgedu BY ACCESS;
Audit succeeded.

### 3. 配置密码管理
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LENGTH 12;
Profile altered.

SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_GRACE_TIME 7;
Profile altered.

SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME 90;
Profile altered.

### 4. 验证配置
SQL> SELECT * FROM dba_users WHERE username = ‘FGEDU’;
USERNAME USER_ID PASSWORD ACCOUNT_STATUS LOCK_DATE EXPIRY_DATE
——————– ——- ——————————— ————— ———– ———–
FGEDU 101 ********************************* OPEN

SQL> SELECT * FROM dba_sys_privs WHERE grantee = ‘FGEDU’;
GRANTEE PRIVILEGE ADMIN_OPTION
———- —————————————- ————
FGEDU CREATE SESSION NO
FGEDU ALTER SESSION NO
FGEDU SELECT ANY DICTIONARY NO
FGEDU SELECT ANY TABLE NO
FGEDU FLASHBACK ANY TABLE NO

SQL> SELECT * FROM dba_tab_privs WHERE grantee = ‘FGEDU’;
GRANTEE OWNER TABLE_NAME PRIVILEGE GRANTABLE HIERARCHY
———- ———- ————— ———— ——— ———
FGEDU SYS DBMS_FLASHBACK EXECUTE NO NO
FGEDU SYS DBMS_LOGMNR EXECUTE NO NO

### 5. 配置结果
– GoldenGate用户已创建
– 必要的权限已授予
– 数据库审计已启用
– 密码管理已配置

4.2 系统安全配置案例

以下是系统安全配置的实战案例:

# 系统安全配置案例

## 环境信息
操作系统:Oracle Linux 8.5
GoldenGate版本:21.3.0.0.0

## 配置步骤

### 1. 创建GoldenGate系统用户
$ groupadd oinstall
$ groupadd dba
$ useradd -g oinstall -G dba ggate
$ passwd ggate
Changing password for user ggate.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

### 2. 配置GoldenGate目录权限
$ mkdir -p /GoldenGate/app
$ mkdir -p /GoldenGate/fgdata
$ chown -R ggate:oinstall /GoldenGate
$ chmod -R 755 /GoldenGate
$ chmod 600 /GoldenGate/app/dirprm/*

### 3. 配置系统安全
$ systemctl start firewalld
$ systemctl enable firewalld
$ firewall-cmd –add-port=7809/tcp –permanent
success
$ firewall-cmd –reload
success

### 4. 限制SSH访问
$ vi /etc/ssh/sshd_config
# 允许的用户
AllowUsers ggate
# 禁用root登录
PermitRootLogin no
# 禁用密码登录
PasswordAuthentication no

$ systemctl restart sshd

### 5. 配置系统审计
$ systemctl start auditd
$ systemctl enable auditd
$ vi /etc/audit/rules.d/audit.rules
# 审计GoldenGate目录
-w /GoldenGate -p wa -k ggate

$ auditctl -R /etc/audit/rules.d/audit.rules

### 6. 验证配置
$ ls -la /GoldenGate/
total 16
drwxr-xr-x. 4 ggate oinstall 4096 Apr 10 10:00 .
dr-xr-xr-x. 19 root root 4096 Apr 10 09:00 ..
drwxr-xr-x. 10 ggate oinstall 4096 Apr 10 10:00 app
drwxr-xr-x. 5 ggate oinstall 4096 Apr 10 10:00 fgdata

$ ls -la /GoldenGate/app/dirprm/
total 20
-rw——-. 1 ggate oinstall 100 Apr 10 10:00 EXT1.prm
-rw——-. 1 ggate oinstall 100 Apr 10 10:00 DP1.prm
-rw——-. 1 ggate oinstall 100 Apr 10 10:00 REP1.prm

$ firewall-cmd –list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: ssh dhcpv6-client
ports: 7809/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

### 7. 配置结果
– GoldenGate系统用户已创建
– 目录权限已配置
– 防火墙已启用并配置
– SSH访问已限制
– 系统审计已配置

4.3 网络安全配置案例

以下是网络安全配置的实战案例:

# 网络安全配置案例

## 环境信息
源端:fgedu01 (Oracle Linux 8.5)
目标端:fgedu02 (Oracle Linux 8.5)
GoldenGate版本:21.3.0.0.0

## 配置步骤

### 1. 生成密钥
$ cd /GoldenGate/app
$ openssl req -x509 -newkey rsa:2048 -keyout ggate.key -out ggate.crt -days 365 -nodes
Generating a 2048 bit RSA private key
……………..+++
………………….+++
writing new private key to ‘ggate.key’
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Beijing
Locality Name (eg, city) [Default City]:Beijing
Organization Name (eg, company) [Default Company Ltd]:FGEDU
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server’s hostname) []:fgedu.net.cn
Email Address []:admin@fgedu.net.cn

### 2. 配置GoldenGate加密
GGSCI> edit param mgr
PORT 7809
SECUREPARAMS /GoldenGate/app/ggate.key

GGSCI> stop mgr
Manager process is required by other GGS processes.
Are you sure you want to stop it (y/n)? y
Sending STOP request to MANAGER …
Manager process stopped.

GGSCI> start mgr
Manager started.

### 3. 配置Data Pump加密
GGSCI> edit param DP1
EXTRACT DP1
PASSTHRU
RMTHOST fgedu02, MGRPORT 7809, SECURE SSL
RMTTRAIL /GoldenGate/fgdata/dirdat/rt
TABLE fgedu.*;

GGSCI> stop DP1
Sending STOP request to EXTRACT DP1 …
EXTRACT DP1 stopped.

GGSCI> start DP1
Sending START request to MANAGER …
EXTRACT DP1 starting

### 4. 配置网络访问控制
$ iptables -A INPUT -p tcp -s 192.168.1.0/24 –dport 7809 -j ACCEPT
$ iptables -A INPUT -p tcp –dport 7809 -j DROP
$ service iptables save

### 5. 验证配置
GGSCI> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXT1 00:00:00 00:00:05
EXTRACT RUNNING DP1 00:00:00 00:00:03
REPLICAT RUNNING REP1 00:00:00 00:00:02

$ iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp — 192.168.1.0/24 0.0.0.0/0 tcp dpt:7809
DROP tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:7809

### 6. 配置结果
– 密钥已生成
– GoldenGate加密已配置
– Data Pump加密已配置
– 网络访问控制已配置
– 所有进程运行正常

Part05-风哥经验总结与分享

5.1 最佳实践

根据实际经验,总结以下最佳实践:

  • 最小权限原则:只授予用户完成工作所需的最小权限
  • 定期权限审查:定期审查用户权限,确保权限的合理性
  • 密码管理:设置强密码策略,定期更改密码
  • 加密传输:使用加密传输保护数据安全
  • 审计监控:启用审计,监控用户操作

5.2 常见问题与解决

安全管理与权限控制中的常见问题及解决方案:

常见问题及解决方案:

  • 权限不足:检查用户权限,确保授予必要的权限
  • 密码过期:定期更改密码,避免密码过期
  • 审计失败:检查审计配置,确保审计功能正常
  • 加密配置错误:检查加密配置,确保密钥正确
  • 网络访问被拒绝:检查防火墙配置,确保网络访问权限

5.3 风哥经验分享

在多次GoldenGate安全管理与权限控制的经验中,我总结了以下几点心得:

1. 安全意识:安全管理是一个持续的过程,需要不断提高安全意识,定期更新安全知识。

2. 最小权限:遵循最小权限原则,只授予用户完成工作所需的最小权限,减少安全风险。

3. 定期审查:定期审查用户权限和安全配置,确保权限的合理性和安全性。

4. 加密保护:使用加密传输保护数据安全,特别是在网络传输过程中。

5. 审计监控:启用审计功能,监控用户操作,及时发现和处理安全事件。

更多学习教程公众号风哥教程itpux_com

风哥提示:安全管理与权限控制是GoldenGate运维中的重要环节,需要建立完善的安全体系。建议定期进行安全评估,及时发现和解决安全问题,确保GoldenGate系统的安全运行。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息