安全风险
- 数据泄露风险:若复制账号权限过大,比如拥有全局
SELECT
权限,那么恶意用户可通过该账号获取数据库敏感数据。
- 数据篡改风险:若赋予复制账号写权限,如
INSERT
、UPDATE
、DELETE
等权限,一旦账号信息泄露,可能导致数据被恶意篡改。
- 系统破坏风险:若给予复制账号过高的管理权限,如
DROP DATABASE
、SHUTDOWN
等,可能导致整个数据库系统被破坏。
功能影响
- 复制异常:权限不足可能导致复制无法正常进行,例如没有读取二进制日志的权限,从库无法获取主库的更新信息,从而中断复制。
- 数据不一致:如果权限设置不当,在复制过程中可能出现数据不一致的情况。比如主库执行了更新操作,但从库因权限问题未能同步该操作。
避免方法
- 最小权限原则:为复制账号只授予必要的权限,通常只需授予
REPLICATION SLAVE
权限,用于从主库读取二进制日志。示例:
CREATE USER'replication_user'@'slave_host_ip' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO'replication_user'@'slave_host_ip';
FLUSH PRIVILEGES;
- 定期审查权限:定期检查复制账号的权限设置,确保没有额外的不必要权限。
- 限制来源 IP:在创建用户时,指定允许连接的 IP 地址,减少账号被非法访问的风险。例如上述示例中,
'slave_host_ip'
明确了只有特定 IP 的从库能连接。