本文主要是介绍数据库安全策略加固优化,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
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都有连接权限。
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
这篇关于数据库安全策略加固优化的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!