MySQL数据库安全配置
”select host,user,password,select_priv,grant_priv from user;”显示mysql数据库存储的账号密码。如图3所示
,输入命令update user set password=password(“654321”) where user=’root’然后输入命令flush privileges。强制刷新内存授权表,否则用的还是缓冲中的口令,这时非法用户还可以用root用户及空口令登录,直到重启MySQL服务器,更改后的密码才生效。如图4所示
,输入下面命令“delete from user where user=’’;Host字段为localhost的匿名用户拥有所有的权限,就是说本地用户用空的用户名和空的口令登录MySQL数据库服务器可以得到最高的权限,所以匿名用户必须删除。如图5所示
,而一般情况下,数据库管理员都没有进行修改,这一定程度上对系统用户穷举的恶意行为提供了便利,此时修改为复杂的用户名。输入命令update user set user=”newroot” where user=”root”; 在输入命令flush p0rivileges;刷新一下。如图6所示
–an 可以看到mysql数据库默认开启3306端口,此端口允许用户远程通过账号密码连接数据库,为了禁止该功能,working,不监听sql的任何TCP/IP的连接,切断远程访问的权利,保证安全性。如图7所示
Show variables like “%working%”;
二、查看mysql表权限设置
User表是授权表中最重要的一个,输入下面命令desc user;,列出可以连接服务器的用户及其加密口令,并且它指定它们有哪种全局(超级用户)权限。在User表启用的任何权限均是全局权限,并适用于所有数据库。。如图9所示
图9
图10
,输入命令”desc db;”列出所有数据库,而用户有权限访问它们。在这里指定的权限适用于一个数据库中的所有表。如图11所示
图11
“desc host;”与db表结合使用在一个较好层次上控制特定主机对数据库的访问权限,这可能比单独使用db好些。这个表不受GRANT和REVOKE语句的影响。如图12所示
图12
”grant all privileges on . to ******@localhost identified by ‘test’ with grant option;”增加一个本地具有所有权限的test用户(超级用户),密码是test。“所有数据库、所有表”。with grant option表示它具有grant权限。用grant语句创建权限是不需要再手工刷新授权表的,因为它已经自动刷新了。如图13所示
图13
“select user,password from user;”。如图14所示
图14
。如图15所示
图15
。如图16所示
MySQL数据库安全审计
审计原理
MYSQL服务器生成的日志文件主要有两种形式,常规日志文件:可以把客户机对MYSQL数据库的所有操作进行纪录和跟踪。这种日志文件可以用来对服务器的活动进行跟踪,那个用户连接服务器,从什么地方连接服务器,对服务器进行哪些操作。跟新日志:它可以用来对数据库进行修改的查询进行记录,所有更新的日志文件用SQL语句的形式进行书写,这些语句用作对MYSQL的输入,当Mysql服务器瘫痪时,可以利用该日志文件将系统恢复到崩溃时的完好状态。
为了使MYSQL服务器日志文件有效,在对MYSQL服务器设置启动方式时,应适用—log选项把常规的日志文件开启,—log-update选项把更新的日志文件开启。MYSQL数据库系统不具有审计功能,但是MYSQL数据库系统中的日志文件对数据库的一切操作进行了纪录,因此,利用MYSQL日志文件和操作系统日志文件相结合的方式也可以方便的实现一些基本的审计功能。
一、
启动mysql的日志,:
错误日志
:
#Enter a name for the error log file. Otherwise a def
MySQL数据库安全配置 来自淘豆网m.daumloan.com转载请标明出处.