ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

数据库安全策略加固优化

2022-07-23 15:33:47  阅读:233  来源: 互联网

标签:control set -- connection user mysql 加固 数据库安全 优化


docker mysql基础使用命令

#从dockerhub上查找相关版本:
docker search mysql

#拉取镜像:
docker pull mysql:版本号

#启动mysql:
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

#进入mysql容器:
docker exec -it NAMES /bin/sh

#开启容器:
docker start 容器ID

Mysql优化--skip-name-resolve_MySQL


你可以用--skip-name-resolve选项启动mysqld来禁用DNS主机名查找。然而,在这种情况下,你只可以使用MySQL中的授权表中的IP号。
 
如果你有一个很慢的DNS和许多主机,你可以通过用--skip-name-resolve禁用DNS查找或增加HOST_CACHE_SIZE定义(默认值:128)并重新编译mysqld来提高性能。

你可以用--skip-host-cache选项启动服务器来禁用主机名缓存。要想清除主机名缓存,执行FLUSH HOSTS语句或执行mysqladmin flush-hosts命令。

如果你想要完全禁止TCP/IP连接,用--skip-networking选项启动mysqld。

连接mysql时,都会向DNS做反向地址查询

只有等超时失败后,mysql才会响应客户端

等待解析的mysql进程都是 login状态

mysql限制ip访问:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)


select user,host from mysql.user;

参数说明:
Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.0.131。这里的意思就是说root用户只能通过192.168.0.131的客户端去访问。
而%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限。

image

mysql

#插件库的文件名是validate_password.文件名后缀根据平台的不同而不同(例如,linux是.so ,对于Windows是.dll)

#数据库登录失败模块
install plugin connection_control soname "connection_control.so"; #登录错误次数限制插件
install plugin connection_control_failed_login_attempts soname 'connection_control.so'; #为了把错误次数记录到表中
#查看默认的相关参数
show variables like "%connection_control%";
#全局设置参数值
set global connection_control_failed_connections_threshold = 5;
set global connection_control_max_connection_delay = 28800;
set global connection_control_min_connection_delay = 1800;



#数据库启用加密传输
SET GLOBAL require_secure_transport = 'ON';
SHOW VARIABLES LIKE "%require_secure_transport%";
SHOW VARIABLES LIKE '%ssl%';




#安装validate_password插件,口令复杂度
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
show variables like "%validate_password%";

#数据库密码有效期
show variables like 'default_password_lifetime%';
set global default_password_lifetime = 90;


#开启审计功能

show variables like 'general_log%;
set global general_log = ON;

#重命名默认root账户
select user from mysql.user;
use mysql;
update user set user ='sysxxx' where user ='root';
flush privileges;


#创建审计账户
CREATE USER 'audit'@'localhost' IDENTIFIED BY '123456';
show grants for audit@'localhost';
GRANT SHOW DATABASES,SHOW VIEW,SELECT ON *.* TO 'audit'@'localhost';



Oracle

1)应用系统设置密码复杂度要求,设置定期更换密码; 2)数据库设置鉴别信息具有复杂度要求并定期更换为:
PASSWORD_REUSE_MAX=5 
PASSWORD_GRACE_TIME=7  
PASSWORD_VERIFY_FUNCTION=ORA12C_STRONG_VERIFY_FUNCTION 
PASSWORD_REUSE_TIME=30  
PASSWORD_LIFE_TIME =90

标签:control,set,--,connection,user,mysql,加固,数据库安全,优化
来源: https://www.cnblogs.com/qtzd/p/16511868.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有