记mysql基础安全优化12条

  • A+
所属分类:数据库

1、启动程序设置权限700,属主和组为mysql

# chown -R root /usr/local/mysql/ //mysql主目录给root
# chown -R rotot  /usr/local/mysql/var //确保数据库目录权限所属mysql用户

2.为mysql超级用户root设置密码

update user set password=password("abcdef") where user="root";
或者使用mysqladmin password
要记得#mysql> flush privileges; //强制刷新内存授权表。

3.如果严格要求,可以删除root用户,创建其他的管理用户,例如admin

#use mysql;
#delete from db; //删除存放数据库的表信息,因为还没有数据库信息。
#mysql> delete from user where user=’root’ and password=”; //删除空密码的root,尽量重复操作
Query OK, 2 rows affected (0.00 sec)
great all privileges on *.* to 'admin'@'localhost'  identified by '123456' with grant option;
#mysql> flush privileges; //强制刷新内存授权表。

4.登陆时尽量不要在命令行泄露密码,备份脚本如有密码,则设置权限为700,属主和用户组为mysql或者root

# rm .bash_history .mysql_history //删除历史记录
# ln -s /dev/null .bash_history //将shell记录文件置空
# ln -s /dev/null .mysql_history //将mysql记录文件置空
有利有弊

5.删除默认存在的test库

#mysql> show databases;
#mysql> drop database test; //删除数据库test

6.删除无用的用户,除了远端需求用户,只保留'root'@'127.0.0.1'和'root'@'localhost'

#mysql> delete from user where not (user=’root’) ; // 删除初始非root的用户

7.授权用户对应主机不要使用%匹配,权限不要给all,要最小化授权,丛库只不给写,只给select权限

8.不要一个用户管理所有的库,尽量专库专用户

9.禁止开发获取到web连接的密码,禁止开发连接操作生产对外的库。

10.关于phpmyadmin的安全

11.数据库服务器禁止设置外网ip

12.防止sql注入 php.ini控制13.使用chroot方式来控制MySQL的运行目录(监牢模式)

Chroot是linux中的一种系统高级保护手段,它的建立会将其与主系统几乎完全隔离,也就是说,一旦遭到什么问题,也不会危及到正在运行的主系统。这是一个非常有效的办法,特别是在配置网络服务程序的时候。
过crontab定时备份数据:
#!/bin/sh
time=date +”(“%F”)”%R
$/usr/local/mysql/bin/mysqldump -u nagios -pnagios nagios | gzip >/home/sszheng/nfs58/nagiosbackup/nagios_backup.$time.gz
# crontab -l
# m h dom mon dow command
00 00 * * * /home/sszheng/shnagios/backup.sh
恢复数据使用命令:
gzip -d nagios_backup.\(2008-01-24\)00\:00.gz
nagios_backup.(2008-01-24)00:00
#mysql –u root -p nagios < /home/sszheng/nfs58/nagiosbackup/nagios_backup.\(2008-01-24\)12\:00

历史上的今天:

weinxin
我的微信公众号
我的微信公众号扫一扫

发表评论

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen: