学习
实践
活动
专区
工具
TVP
写文章

MySQL最佳安全配置-权限安全配置

1.确保只有管理员账号有所有数据库的访问权限

建议理由:

除了管理员账号,其他用户没必要有所有数据库的访问权限。过高的权限会导致安全问题。

检查方法:用sql语句检查

SELECT user, host FROM mysql.user WHERE (Select_priv = 'Y') OR(Insert_priv = 'Y')

OR (Update_priv = 'Y') OR(Delete_priv = 'Y') OR (Create_priv = 'Y') OR (Drop_priv = 'Y');

SELECT user, host FROM mysql.dbWHERE db = 'mysql' AND ((Select_priv = 'Y') OR (Insert_priv = 'Y')

OR (Update_priv = 'Y') OR(Delete_priv = 'Y') 45 | Page OR (Create_priv = 'Y') OR (Drop_priv = 'Y'));

如果返回的都是管理员账号说明安全,否则需要对用户清除权限

修复建议:

清除非管理员账号的过高部分权限

2.非管理员账号file_priv不应该设置成Y

建议理由:

File_priv权限允许mysql用户对磁盘进行读写操作。黑客很可能利用这一点盗取数据库中敏感数据。

检查方法:用sql语句检查

select user, host from mysql.user where File_priv = 'Y';

如果返回的都是管理员账号,否则需要对用户清除权限

修复建议:

REVOKE FILE ON *.* FROM '’;

3.非管理员账号process_priv不应该设置成Y

建议理由:

process_priv权限允许委托账号查看当前正在执行的sql语句。使用超越当前用户权限的权利。可以被攻击者所利用。

检查方法:用sql语句检查

select user, host from mysql.user where Process_priv = 'Y';

如果返回的都是管理员账号则是安全的,否则需要对用户清除权限

修复建议:

REVOKE PROCESS ON *.* FROM '’;

4.非管理员账号super_priv不应该设置成Y

建议理由:

super_priv权限允许委托账号执行任意语句,非管理员不应该具备该权限。

检查方法:用sql语句检查

select user, host from mysql.user where Super_priv = 'Y';

如果返回的都是管理员账号则是安全的,否则需要对用户清除权限

修复建议:

REVOKE SUPER ON *.* FROM '’;

5.非管理员账号shutdown_priv不应该设置成Y

建议理由:

shutdown_priv权限允许委托账号关闭数据库,会造成一定安全隐患。

检查方法:用sql语句检查

SELECT user, host FROM mysql.user WHERE Shutdown_priv = 'Y';

如果返回的都是管理员账号则是安全的,否则需要对用户清除权限

修复建议:

REVOKE SHUTDOWN ON *.* FROM '’;

6.非管理员账号create_user_priv不应该设置成Y

建议理由:

create_user_priv权限允许委托账号创建任意用户,会造成一定安全隐患。

检查方法:用sql语句检查

SELECT user, host FROM mysql.user WHERE Create_user_priv = 'Y';

如果返回的都是管理员账号则是安全的,否则需要对用户清除权限

修复建议:

REVOKE CREATE USER ON *.* FROM '’;

7.非管理员账号grant_priv不应该设置成Y

建议理由:

Grant_priv权限允许委托账号对其他用户赋权,可能会被黑客利用造成一定安全隐患。

检查方法:用sql语句检查

SELECT user, host FROM mysql.user WHERE Grant_priv = 'Y';

如果返回的都是管理员账号则是安全的,否则需要对用户清除权限

修复建议:

REVOKE Grant ON *.* FROM '’;

8.非管理员账号reload_priv不应该设置成Y

建议理由:

reload_priv权限可以对本地文件进行操作,可能会被黑客利用造成一定安全隐患。

检查方法:用sql语句检查

SELECT user, host FROM mysql.user WHERE reload_priv = 'Y';

如果返回的都是管理员账号则是安全的,否则需要对用户清除权限

修复建议:

REVOKE reload ON *.* FROM '’;

9.非管理员账号repl_slave_priv不应该设置成Y

建议理由:

repl_slave_priv用于从主服务器上获得更新的数据。黑客很可能利用这一点盗取数据库中敏感数据。

检查方法:用sql语句检查

select user, host from mysql.user where repl_slave_priv = 'Y';

如果返回的都是管理员账号,否则需要对用户清除权限

修复建议:

REVOKE repl_slave ON *.* FROM '’;

10.确保DML/DDL权限只在特定用户手上

建议理由:

限制用户有INSERT,SELECT,UPDATE,DELETE,DROP,CREATE和ALTER权限。这些权限都会导致数据泄密等。

检查方法:用sql语句检查

SELECT User,Host,Db FROM mysql.db WHERE Select_priv='Y' ORInsert_priv='Y'

OR Update_priv='Y' ORDelete_priv='Y' OR Create_priv='Y' OR Drop_priv='Y' OR Alter_priv='Y';

如果返回的都是管理员账号,否则需要对用户清除权限

修复建议:

REVOKE SELECT ON . FROM ; REVOKE INSERT ON . FROM ;

REVOKE UPDATE ON . FROM ;REVOKE DELETE ON . FROM ;

REVOKE CREATE ON . FROM ;REVOKE DROP ON . FROM ;

REVOKE ALTER ON . FROM ;

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180628G1GB3K00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券