数据库安全策略加固优化


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

原创文章,作者:,如若转载,请注明出处:https://blog.ytso.com/276492.html

(0)
上一篇 2022年7月23日
下一篇 2022年7月23日

相关推荐

发表回复

登录后才能评论