mysql--数据库安全配置

1. 修改root权限

GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ identified by ‘root‘ WITH GRANT OPTION;
-- 设置特定主机才拥有访问特权
GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘localhost‘ identified by ‘root‘ WITH GRANT OPTION;

2. 检查帐户默认密码和弱密码

update user set password=password(‘test!p3‘) where user=‘root‘;

3. 删除或锁定与数据库运行、维护等工作无关的账号

-- 删除匿名账户
DELETE FROM mysql.user WHERE User = ‘‘;
DELETE FROM mysql.db WHERE User = ‘‘;

4. 应按照用户分配账号,避免不同用户间共享账号

-- 在数据库权限配置能力内,根据用户的业务需要,配置其所需的最小权限
GRANT ALL PRIVILEGES ON *.* to [email protected] identified by ‘root‘;
GRANT ALL PRIVILEGES ON xxx.* to [email protected] identified by ‘root‘;
GRANT select,insert,update,delete,create,drop on xxx.* to [email protected] identified by ‘root‘;
-- 回收不必要的或危险的授权,可以执行revoke命令: REVOKE ALL PRIVILEGES ON *.* from ‘root‘@‘192.168.120.11‘;
GRANT与REVOKE
ALL PRIVILEGES	影响除WITH GRANT OPTION之外的所有权限
ALTER	影响ALTER TABLE命令的使用
ALTER ROUTINE	影响创建存储例程的能力
CREATE	影响CREATE TABLE命令的使用
CREATE ROUTINE	影响更改和弃用存储例程的能力
CREATE TEMPORARY TABLES	影响CREATE TEMPORARY TABLE命令的使用
CREATE USER	影响创建、弃用;重命名和撤销用户权限的能力
CREATE VIEW	影响CREATE VIEW命令的使用
DELETE	影响DELETE命令的使用
DROP	影响DROP TABLE命令的使用
EXECUTE	影响用户运行存储过程的能力
EVENT	影响执行事件的能力(从MySQL5.1.6开始)
FILE	影响SELECT INTO OUTFILE和LOAD DATA INFILE的使用
GRANT OPTION	影响用户委派权限的能力
INDEX	影响CREATE INDEX和DROP INDEX命令的使用
INSERT	影响INSERT命令的使用
LOCK TABLES	影响LOCK TABLES命令的使用
PROCESS	影响SHOW PROCESSLIST命令的使用
REFERENCES	未来MySQL特性的占位符
RELOAD	影响FLUSH命令集的使用
REPLICATION CLIENT	影响用户查询从服务器和主服务器位置的能力
REPLICATION SLAVE	复制从服务器所需的权限
SELECT	影响SELECT命令的使用
SHOW DATABASES	影响SHOW DATABASES命令的使用
SHOW VIEW	影响SHOW CREATE VIEW命令的使用
SHUTDOWN	影响SHUTDOWN命令的使用
SUPER	影响管理员级命令的使用,如CHANGE、MASTER、KILL thread、mysqladmin debug、PURGE MASTER LOGS和SET GLOBAL
TRIGGER	影响执行触发器的能力(从MySQL5.1.6开始)
UPDATE	影响UPDATE命令的使用
USAGE	只连接,不授予权限

-- 重新读授权表。否则,重新启动服务器前,不会使用更改

FLUSH PRIVILEGES;

-- 查看数据库授权情况:

use mysql;

select * from user;

select * from db;

-- select * from host;

select * from tables_priv;

select * from columns_priv;

5. 日志审计

/* 数据库应配置日志功能

mysql有以下几种日志:

         错误日志: -log-err

         查询日志: -log

         慢查询日志: -log-slow-queries

         更新日志: -log-update

         二进制日志: -log-bin

-- 在mysql的安装目录下,打开my.ini,在后面加上上面的参数,保存后重启mysql服务就行了。(上面只开启了错误日志,要开其他的日志就把前面的“#”去掉) 

#Enter a name for the binary log. Otherwise a default name will be used.

#log-bin= mysql-bin

#Enter a name for the query log file. Otherwise a default name will be used.

#log=

#Enter a name for the error log file. Otherwise a default name will be used.

log-error= "WIN-ZHIJIATEST.err"

#Enter a name for the update log file. Otherwise a default name will be used.

#log-update=

*/

-- 查看所有的log命令

show variables like ‘log_%‘;

-- 查看具体的log命令

show variables like ‘log_bin‘;

 6.版本查看

SELECT VERSION()

 

7. 连接数设置

/*根据机器性能和业务需求,设制最大最小连接数。*/

-- 编辑 MySQL 配置文件:my.cnf 或者是 my.ini

max_connections = 1000 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。