当前位置:Gxlcms > 数据库问题 > mysql 开发进阶篇系列 55 权限与安全(安全事项 )

mysql 开发进阶篇系列 55 权限与安全(安全事项 )

时间:2021-07-01 10:21:17 帮助过:55人阅读

-R mysql.mysql /etc/my.cnf [root@hsr ~]# chmod 600 /etc/my.cnf [root@hsr ~]# ls -l /etc/my.cnf -rw------- 1 mysql mysql 1072 10月 22 15:48 /etc/my.cnf -- 下面使用test系统用户查看,提示权限不够 [root@hsr ~]# su test [test@hsr root]$ cat /etc/my.cnf cat: /etc/my.cnf: 权限不够

    以上三种方法,第1种方法最不安全,因为是明文。第2种方法安全,但要交互。第3种方便,但要将配置文件设置严格的存取权限。

  2.4 只授予账号必须的权限

    在很多情况下,DBA 为了方便,给用户all privileges权限,这个权限超过了一般应用需要的权限,比如drop_priv等,这些权限如果误操作,将会产生严重后果。

  2.5 除root外,任何用户不应有mysql库user表的存取权限。

    由于mysql中可以通过更改mysql数据库的user表进行权限的增加,删除,变更等操作,因此除了root以外,任何用户都不应该拥有对user表存取权限(select,update,insert,delete等),比如:在前面章节创建的z1@localhost用户,拥有了all privileges 权限,就能修改user表数据,如果修改了root用户密码,将导致root用户登录mysql失败。

  2.6 不要把file, process,super权限授予管理员以处的账号

     a. file权限主要作用是:(1)将数据库的信息通过select .. into outfile.. 写到服务器上有写入权限的目录下。(2)可以将有读权限的文本文件通过load data infile.. 命令写入数据库表,如果表中存放很重要的信息,对系统造成很大安全隐患。

    b. process 权限能被用来执行“show processlist” 命令,查看当前所有用户执行查询的明文文本。

    c. super权限能执行kill命令,终掉其它用户进程(SHOW PROCESSLIST的ID进程值)。

-- 例如kill掉进程11
SHOW PROCESSLIST
kill 11

      技术分享图片

  2.7 drop table 命令并不收回以前的相关访问授权

    drop表的时候,其它用户对此表的权限并没有被收回,这样导致重新创建同名的表时,以前其它用户对此表的权限会自动赋予,进而产生权限外流。因此在删除表时,要同时取消其它用户在此表的相应权限。

  2.8  使用ssl

    ssl 是(secure socket yayer安全套接字层)是一种安全的传输协议,用于保障在internet上数据传输的安全。要使用ssl转输,需要先运行mysql_ssl_rsa_setup生成证书,配置my.cnf,重启服务,配置mysql用户(这里不在深入)。

-- 判断是否启用ssl
SHOW GLOBAL VARIABLES LIKE have_%ssl;

      技术分享图片

  2.9 最好给每个用户加上访问ip限制

    在创建用户的时候,可以指定user表host字段的ip或者hostname, 只有符合授权的ip或者hostname才可以进行数据库访问。

  2.10  其它

    (1) skip-grant-tables
      在忘记密码时,可以在my.cnf中加入skip-grant-tables,mysql用户登录后,在设置新密码。这个功能在mysql 开发进阶篇系列 29 数据库二进制包安装中有讲到。skip-grant-tables是个选项是使服务器不使用权限系统,给每个mysql用户完全访问所有数据库的权力。能过执行 mysqladmin flush-privileges或 mysqladmin reload或flush privileges语句,可以让一个正在运行的服务器再次开始使用授权表。

 

mysql 开发进阶篇系列 55 权限与安全(安全事项 )

标签:roc   htm   默认   密码   style   启动数据库   一个   table   表数   

人气教程排行