SQL生产账号怎么管理_最小权限配置技巧【技巧】

1次阅读

sql生产账号须遵循最小权限原则,按角色划分(查询、写入、运维、归档),精确授权到库表,禁用通配符与SUPER/FILE等高危权限,绑定可信IP并限制连接数,定期清理闲置账号。

SQL生产账号怎么管理_最小权限配置技巧【技巧】

SQL生产账号必须遵循最小权限原则,只授予完成业务必需的权限,避免使用root或sa等高权限账号直接对接应用。

按角色划分账号,明确用途边界

不要用一个账号跑所有业务。建议拆分为:查询账号、写入账号、运维账号、归档账号等。例如,报表系统只配只读权限(select),且限制在指定库和几张核心表;订单服务账号仅允许对order、payment表执行INSERT/UPDATE,禁止DROP或ALTER操作。

  • 建账号时用CREATE USER ‘app_report’@’10.20.%’ IDENTIFIED BY ‘xxx’;
  • 授权时精确到库+表:GRANT SELECT ON finance.sales_summary TO ‘app_report’@’10.20.%’;
  • 禁止通配符滥用:不执行 GRANT SELECT ON *.*

禁用高危权限,关闭非必要功能

生产环境必须显式回收SUPER、FILE、SHUTDOWN、PROCESS、REPLICATION CLIENT等权限。尤其注意:FILE权限可读写服务器文件系统,曾被用于读取/etc/passwd或写入Webshell。

SQL生产账号怎么管理_最小权限配置技巧【技巧】

AI Undetect

让AI无法察觉,让文字更人性化,为文字体验创造无限可能。

SQL生产账号怎么管理_最小权限配置技巧【技巧】 162

查看详情 SQL生产账号怎么管理_最小权限配置技巧【技巧】

  • 检查当前权限:SHOW GRANTS for ‘app_user’@’%’;
  • 回收危险权限:REVOKE FILE, SUPER ON *.* FROM ‘app_user’@’%’;
  • mysql 8.0+ 可用角色管理:CREATE ROLE ‘readonly_role’; GRANT SELECT ON sales.* TO ‘readonly_role’;

限制登录来源与连接数,增加基础防护

账号绑定可信IP段(如应用服务器内网段),并设置最大并发连接数,防暴力试探或连接耗尽攻击。

  • 创建时指定host:CREATE USER ‘svc_order’@’172.16.5.0/24’ IDENTIFIED BY ‘pwd’;
  • 限制连接数:ALTER USER ‘svc_order’@’172.16.5.0/24’ WITH MAX_USER_CONNECTIONS 20;
  • 定期清理长期未用账号:SELECT user, host, password_last_changed FROM mysql.user WHERE password_last_changed

定期审计与自动轮换,形成闭环

权限不是一劳永逸。建议每月导出账号权限快照,对比变更;密码每90天强制轮换,并通过配置中心或密钥管理服务(如Vault)分发,不硬编码配置文件中。

  • 生成权限报告:SELECT user, host, db, table_name, privilege_type FROM information_schema.role_table_grants WHERE role_name = ‘app_role’;
  • 轮换密码后立即刷新权限:ALTER USER ‘app_user’@’%’ IDENTIFIED BY ‘new_strong_pwd’; FLUSH PRIVILEGES;
  • 应用启动时校验连接可用性,失败即告警,不静默降级

text=ZqhQzanResources