美文网首页
等保三级项目改造之数据库账号密码

等保三级项目改造之数据库账号密码

作者: 翔子1987 | 来源:发表于2024-08-15 09:20 被阅读0次

    一、配置口令复杂度策略

    show variables like 'plugin_dir';
    show plugins;
    安装密码插件
    install plugin validate_password soname 'validate_password.so';
    密码策略参数
    mysql>show variables like 'validate%';
        
    #永久生效
    [mysqld]
    plugin-load-add=validate_password.so
    #服务器在启动时加载插件,并防止在服务器运行时删除插件。
    validate-password=FORCE_PLUS_PERMANENT
    
    卸载插件
    uninstall plugin connection_control_failed_login_attempts
    

    二、配置口令有效期策略

    mysql 
    alter user 'root'@'%' password expire interval 90 day;
    

    三、配置登录失败处理及连接超时自动退出策略

    #登录错误次数限制插件
    install plugin connection_control soname "connection_control.so";
    #为了把错误次数记录到表中
    install plugin connection_control_failed_login_attempts soname 'connection_control.so';
    #设置策略
    set global connection_control_failed_connections_threshold = 5;
    set global connection_control_max_connection_delay = 1800000;
    set global connection_control_min_connection_delay = 1800000;
    #永久生效
    [mysqld]
    plugin-load-add = connection_control.so
    connection-control = FORCE
    connection-control-failed-login-attempts = FORCE
    connection_control_min_connection_delay = 1000
    connection_control_max_connection_delay = 86400
    connection_control_failed_connections_threshold = 3
    

    三、开启安全审计行为

    建议数据库开启安全审计,对操作行为进行审计、对日志进行保护,定期进行备份,保存6个月以上。

    show variables like 'general%';  -- 查看日志是否开启
    show variables like 'log_output';  -- 看看日志输出类型  table或file    
        
    set global general_log=on; -- 开启日志功能
    set global general_log_file='tmp/general.lg'; -- 设置日志文件保存位置
    set global log_output='file';   -- 设置输出类型为file
    
    #永久生效
    [mysqld]
    general-log=1
    
    #日志切割设置,利用logrote实现一天一个压缩日志。
    cp support-files/mysql-log-rotate /etc/logrotate.d/
    vim /etc/logrotate.d/mysql-log-rotate 
    chmod 644 /etc/logrotate.d/mysql-log-rotate
    logrotate -f /etc/logrotate.conf 
    
    

    四、配备网络管理员,安全管理员

    MySQL可以通过创建不同的用户和角色来配备网络管理员和安全管理员。

    1. 创建网络管理员用户

    可以使用以下命令创建一个具有网络管理员权限的用户:

    CREATE USER 'netadmin'@'localhost' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON *.* TO 'netadmin'@'localhost';
    

    这将创建一个名为“netadmin”的用户,并授予该用户在所有数据库和表上执行任何操作的权限。

    1. 创建安全管理员用户

    可以使用以下命令创建一个具有安全管理员权限的用户:

    CREATE USER 'secadmin'@'localhost' IDENTIFIED BY 'password';
    GRANT SELECT, INSERT, UPDATE, DELETE ON mysql.* TO 'secadmin'@'localhost';
    

    这将创建一个名为“secadmin”的用户,并授予该用户在MySQL系统数据库上执行SELECT、INSERT、UPDATE和DELETE操作的权限。

    1. 创建角色

    除了创建用户,还可以创建角色来分配权限。可以使用以下命令创建一个名为“netadmin_role”的角色,并将其授予在所有数据库和表上执行任何操作的权限:

    CREATE ROLE 'netadmin_role';
    GRANT ALL PRIVILEGES ON *.* TO 'netadmin_role';
    

    然后,可以将“netadmin”用户添加到“netadmin_role”角色中:

    GRANT 'netadmin_role' TO 'netadmin'@'localhost';
    

    这将使“netadmin”用户继承“netadmin_role”的所有权限。

    类似地,可以创建一个名为“secadmin_role”的角色,并将其授予在MySQL系统数据库上执行SELECT、INSERT、UPDATE和DELETE操作的权限:

    CREATE ROLE 'secadmin_role';
    GRANT SELECT, INSERT, UPDATE, DELETE ON mysql.* TO 'secadmin_role';
    

    然后,可以将“secadmin”用户添加到“secadmin_role”角色中:

    GRANT 'secadmin_role' TO 'secadmin'@'localhost';
    

    这将使“secadmin”用户继承“secadmin_role”的所有权限。

    相关文章

      网友评论

          本文标题:等保三级项目改造之数据库账号密码

          本文链接:https://www.haomeiwen.com/subject/jcdjkjtx.html