简介

    写这篇文章的主要目的并不是为了抄袭一下,显示自己的才能什么的,而是为了记录下自己踩过的坑,下次需要走相同的路的时候,给自己找一个桥,不用来回的找工具用来跳坑。

mysql用户相关权限分类

  1-用户创建删除

  2-用户对表的操作权限增加删除

  3-当然,我觉得应该还有其他权限,以后补充

方案

    我提供了一套自己使用mysql的方案,供各位参考。

  1-root禁止远程登录

    root禁止远程登录是很重要的,因为没有root用户允许,其他用户根本无法操作权限,只能做root允许自己做的事。

    反之,想要本地登录root用户,就需要本地登录你的服务器,如果你的服务器都被攻破了,那还有啥说的。当然我也可以认为别人直接在你本地登录的mysql。那我只能说,你的机房都被人物理攻破了,这个世界太危险了。

    禁止root远程登录也有缺点,那就是所有的权限相关的操作必须到本地操作(或者远程桌面),不过我想需要做mysql权限控制的用户,这个应该不是很麻烦。

    (一般情况下我的服务器root用于也是禁止远程登录的,同时我的其他用户也都限制了sudo的权限,不登陆root用户,很多东西根本无法操作)

  2-创建新用户

    创建用户之后如果正式使用,最好限制每个用户的允许登录的IP地址,如此一来则可以更大程度的保证数据库的安全。

  3-分割权限

    root禁止远程登录之后(root未禁止远程登录则意义不大,看个人需求),你就可以创建不同的用户,然后把不同的用户赋予不同的权限,以增加安全性。(分割不同的用户权限最大的作用在于,算了,不说了,自行体会)

比如,使用微服务时,用户查询的微服务,使用你的用户只有读的权限等。

见解

    一定要注意的一点就是,更改了mysql权限相关的内容后一定要刷新权限

      命令:FLUSH PRIVILEGES;(忽略大小写,注意结尾有分号)

      flush privileges;

    本文中没有写任何的具体操作,具体操作内容在下方的引用文章中可以找到。使用时请注意数据库版本。

    世上没有不透风的墙,也没有走不通的路,更没有绝对安全的所在。世界在变,你我也在变,技术日新月异,各种技术的漏洞也在不断被发现和被修复。我们能做的只是让我们的数据更安全,更可靠,数据的安全并不是一场赛跑,先到了终点就是胜利,这是一个天平,你不减少bug,你就会由于重量被敌人压下去。

    不过,也不要太悲观,毕竟你从一开始就站在绝对的高处,你有更多的优势。

sql语句用例

    创建新用户

      create user 用户名 identified by '密码';

    删除用户

      drop user zhangsan@'%';

    允许远程访问(新建用户默认支持远程访问,下面的语句貌似会附加赋权语句)

      GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

    禁止远程访问

      update user set host = "localhost" where user = "root" and host = "%";

      delete from mysql.user where user = 用户名;

    查询远程访问

      select host,user from user;

    创建数据库

      create database 数据库名;

 

    赋予权限(select,insert,update,delete,create,drop,all)

      grant 权限 on 数据库.数据表 to '用户' @ '主机名';

      例:让 xiaogang 有查询 tmp 数据库 tmp1 表的权限;

      grant all on temp.* to 'xiaogang'@'%';

 

    删除权限(select,insert,update,delete,create,drop,all)

      revoke 权限 on  数据库.数据表 from '用户'@'主机名';

      例:收回 xiaogang的所有权限

      revoke all on *.* from 'xiaogang' @'%';

 

    刷新权限

      命令:FLUSH PRIVILEGES;(忽略大小写,注意结尾有分号)

感言

  祝各位的数据更安全,各位管理共轻松。

说道数据库,我想到一篇关于jedis的文章(JedisCluster API 整理)