MST

星途 面试题库

面试题:MySQL创建复制账号注意事项及影响

在MySQL创建复制账号时,若设置了不合理的权限,可能会对数据复制造成哪些安全风险和功能影响?应如何避免?
32.1万 热度难度
数据库MySQL

知识考点

AI 面试

面试题答案

一键面试

安全风险

  1. 数据泄露风险:若复制账号权限过大,比如拥有全局 SELECT 权限,那么恶意用户可通过该账号获取数据库敏感数据。
  2. 数据篡改风险:若赋予复制账号写权限,如 INSERTUPDATEDELETE 等权限,一旦账号信息泄露,可能导致数据被恶意篡改。
  3. 系统破坏风险:若给予复制账号过高的管理权限,如 DROP DATABASESHUTDOWN 等,可能导致整个数据库系统被破坏。

功能影响

  1. 复制异常:权限不足可能导致复制无法正常进行,例如没有读取二进制日志的权限,从库无法获取主库的更新信息,从而中断复制。
  2. 数据不一致:如果权限设置不当,在复制过程中可能出现数据不一致的情况。比如主库执行了更新操作,但从库因权限问题未能同步该操作。

避免方法

  1. 最小权限原则:为复制账号只授予必要的权限,通常只需授予 REPLICATION SLAVE 权限,用于从主库读取二进制日志。示例:
CREATE USER'replication_user'@'slave_host_ip' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO'replication_user'@'slave_host_ip';
FLUSH PRIVILEGES;
  1. 定期审查权限:定期检查复制账号的权限设置,确保没有额外的不必要权限。
  2. 限制来源 IP:在创建用户时,指定允许连接的 IP 地址,减少账号被非法访问的风险。例如上述示例中,'slave_host_ip' 明确了只有特定 IP 的从库能连接。