数据库安全配置指南
这些命令会被shell记录在历史文件里,比如bash会写入用户目录的.bash_history文件,如果这些文件不慎被读,那么数据库的密码就会泄漏。用户登陆数据库后执行的SQL命令也会被MySQL记录在用户目录的.mysql_history文件里。如果数据库用户用SQL语句修改了数据库密码,也会因.mysql_history文件而泄漏。所以我们在shell登陆及备份的时候不要在-p后直接加密码,而是在提示后再输入数据库密码。
另外这两个文件我们也应该不让它记录我们的操作,以防万一。
shellrm .bash_history .mysql_history
shellln -s /dev/null .bash_history
shellln -s /dev/null .mysql_history
上门这两条命令把这两个文件链接到/dev/null,那么我们的操作就不会被记录到这两个文件里了。
3、外部络安全
MySQL数据库安装好以后,Unix平台的user表是这样的:
mysql use mysql;
Database changed
mysql select Host,User,Password,Select_priv,Grant_priv from user;
图1
4 rows in set (0.00 sec)
Windows平台的user表是这样的:
mysql use mysql;
Database changed
mysql select Host,User,Password,Select_priv,Grant_priv from user;
图2
4 rows in set (0.00 sec)
我们先来看Unix平台的user表。其中redhat只是我试验机的机器名,所以实际上Unix平台的MySQL默认只允许本机才能连接数据库。但是缺省root用户口令是空,所以当务之急是给root用户加上口令。给数据库用户加口令有三种方法:
1)在shell提示符下用mysqladmin命令来改root用户口令:
shellmysqladmin -uroot password test
这样,MySQL数据库root用户的口令就被改成test了。(test只是举例,我们实际使用的口令一定不能使用这种易猜的弱口令)
2)用set password修改口令:
mysql set password for root@localhost=password(\'test\');
这时root用户的口令就被改成test了。
3)直接修改user表的root用户口令:
mysql use mysql;
mysql update user set password=password(\'test\') where user=\'root\';
mysql flush privileges;
这样,MySQL数据库root用户的口令也被改成test了。其中最后一句命令flush privileges的意思是强制刷新内存授权表,否则用的还是缓冲中的口令,这时非法用户还可以用root用户及空口令登陆,直到重启MySQL服务器。
我们还看到user为空的匿名用户,虽然它在Unix平台下没什么权限,但为了安全起见我们应该删除它:
深入贯彻落实科学发展观 mysql delete from user where user=\'\';
Windows版本MySQL的user表有很大不同,我们看到Host字段除了localhost还有是%。这里%的意思是允许任意的主机连接MySQL服务器,这是非常不安全的,给攻击者造成可乘之机,我们必须删除Host字段为%的记录:
mysqlde
武汉治疗白癜风的医院西安早泄哪家好
肌肉拉伤吃什么药
- 上一页:数据库基础数据类型及列类型的
- 下一页:数据库常见的錯誤分析物业
-
告别马竞?球迷发起联名活动,梅西发文感谢
4月27日消息,弗朗西斯-梅西在推特上非常感谢额马竞主队的联署大型活动,...
2024-07-11
-
赵本山得意“女弟子”,情商智商双“在线”,殊不知她还有一个身份
真是起张伟最难得的女弟子,我一切都是大家一定会都发觉他是谁了吧,对,...
2024-03-07
-
迎战中考!北京非涉疫初三同学今日返校
6月13日,北平市非涉疫八月高中生教职员长假。为迎接教职员们回老家家,各...
2023-12-18
-
新丽将翻拍《华胥引》,女主人选正在接洽金晨和惠,让人期待!
2011年选集的由唐七公孙编著的《华胥引》长期都有着超以致于高的同类型与...
2023-12-17
-
库尔勒市第十二中学:跨学科融为一体课 有“新”更有“心”
白沙瓦北区第十二初级里学:跨人文科学融入课 有“上新”更有“心” 一节...
2023-11-25