一、数据库用户权限管理
数据库权限配置应从创建独立用户账户开始。通过SSH或数据库管理工具登录后,建议执行以下操作流程:
- 使用
CREATE USER
语句创建专属数据库账户 - 通过
GRANT
命令按需分配权限,例如:
GRANT SELECT, INSERT ON dbname.* TO 'user'@'localhost';
- 立即执行
FLUSH PRIVILEGES;
使权限生效
二、遵循最小权限原则
针对不同应用场景应设置差异化的权限等级:
- 前端应用账户仅需
SELECT
/INSERT
/UPDATE
权限 - 备份账户限制为
SELECT
和LOCK TABLES
- 禁止普通用户拥有
FILE
或PROCESS
等系统级权限
三、配置访问控制列表
通过IP白名单和访问时段限制增强安全性:
CREATE USER 'reports'@'192.168.1.%'
IDENTIFIED BY 'password'
WITH MAX_QUERIES_PER_HOUR 100;
该配置限制用户仅允许来自特定IP段的访问,并设置每小时最大查询次数。
四、定期审查与权限更新
建议建立周期性审查机制:
- 每月检查
mysql.user
表清除闲置账户 - 使用
SHOW GRANTS FOR 'user'@'host';
验证权限 - 通过
REVOKE
命令及时回收多余权限
数据库权限管理需建立从账户创建、权限分配、访问控制到定期审查的全生命周期管理体系。通过最小化权限分配、网络访问限制和动态调整机制,可有效降低数据泄露风险,确保虚拟主机数据库的安全运行。