以下文章主要是介绍mysql数据库的安全配置的实际操作的介绍 ,本文例举了相关的实例,当然这些实例都是在mysql数据库的安全配置的实际操作中经常出现的,如果你是数据库的热捧者。那么下面的文章对于你而言一定很有意义。
关键字: mysql内核 数据库安全配置 用户认证模块 密码恢复 存储过程编写 mysql数据库索引
内容摘要:
由于mysql是多平台的数据库,它的默认配置要考虑各种情况下都能适用,所以在我们自己的使用环境下应该进行进一步的安全加固。作为一个mysql的系统管理员,我们有责任维护mysql数据库系统的数据安全性和完整性。
如果启动mysql数据库的用户是mysql,那么象如下的目录和文件的是安全的,请注意数据目录及下面的属性:
shell>ls-l/usr/local/mysql total40 drwxrwxr-x2rootroot4096feb2720:07bin drwxrwxr-x3rootroot4096feb2720:07include drwxrwxr-x2rootroot4096feb2720:07info drwxrwxr-x3rootroot4096feb2720:07lib drwxrwxr-x2rootroot4096feb2720:07libexec drwxrwxr-x3rootroot4096feb2720:07man drwxrwxr-x6rootroot4096feb2720:07mysql-test drwxrwxr-x3rootroot4096feb2720:07share drwxrwxr-x7rootroot4096feb2720:07sql-bench drwx------4mysqlmysql4096feb2720:07var shell>ls-l/usr/local/mysql/var total8 drwx------2mysqlmysql4096feb2720:08mysql drwx------2mysqlmysql4096feb2720:08test shell>ls-l/usr/local/mysql/var/mysql total104 -rw-------1mysqlmysql0feb2720:08columns_priv.myd -rw-------1mysqlmysql1024feb2720:08columns_priv.myi -rw-------1mysqlmysql8778feb2720:08columns_priv.frm -rw-------1mysqlmysql302feb2720:08db.myd -rw-------1mysqlmysql3072feb2720:08db.myi -rw-------1mysqlmysql8982feb2720:08db.frm -rw-------1mysqlmysql0feb2720:08func.myd -rw-------1mysqlmysql1024feb2720:08func.myi -rw-------1mysqlmysql8641feb2720:08func.frm -rw-------1mysqlmysql0feb2720:08host.myd -rw-------1mysqlmysql1024feb2720:08host.myi -rw-------1mysqlmysql8958feb2720:08host.frm -rw-------1mysqlmysql0feb2720:08tables_priv.myd -rw-------1mysqlmysql1024feb2720:08tables_priv.myi -rw-------1mysqlmysql8877feb2720:08tables_priv.frm -rw-------1mysqlmysql428feb2720:08user.myd -rw-------1mysqlmysql2048feb2720:08user.myi -rw-------1mysqlmysql9148feb2720:08user.frm
如果这些文件的属主及属性不是这样,请用以下两个命令修正之:
shell>chown-rmysql.mysql/usr/local/mysql/var shell>chmod-rgo-rwx/usr/local/mysql/var
用root用户启动远程服务一直是安全大忌,因为如果服务程序出现问题,远程攻击者极有可能获得主机的完全控制权。mysql从3.23.15版本开始时作了小小的改动,默认安装后服务要用mysql用户来启动,不允许root用户启动。
如果非要用root用户来启动,必须加上--user=root的参数(./safe_mysqld --user=root &)。因为mysql中有load data infile和select ... into outfile的sql语句,如果是root用户启动了mysql服务器,那么,mysql数据库用户就拥有了root用户的写权限。不过mysql还是做了一些限制的,比如load data infile只能读全局可读的文件,select ... into outfile不能覆盖已经存在的文件。
