Mysql权限管理

前言

公司的mysql权限管理还算是比较的严格,每个数据库只有与之对应的用户有读写权限,而我在本地启动项目的时候,每次都要修改配置文件中的数据库连接,用户名,密码.

太麻烦了.

因此我将线上mysql的host映射到127.0.0.1,给本地的mysql添加所有的用户,这样我就可以不用修改配置文件啦!(建议大家也进行权限管理,每个数据库单独账号读写).

但是我没有,我直接执行了

grant all privileges on *.* to username@'%' identified by 'password';

将所有数据库的所有表的所有权限赋给了某用户.

修改完之后决定学习一下mysql的权限管理,记录一下方便后续查找.

为什么要进行权限管理

当然是为了安全,防止删库跑路这样的事情,或者程序员的手抖.

权限管理时应该遵循以下原则:

  1. 只授予能满足需要的最小权限.比如用户只是需要查询,那就只给select权限就可以了,不要给用户赋予update、insert或者delete权限。
  2. 创建用户的时候限制用户的登录主机,一般是限制成指定IP或者内网IP段。

mysql都有那些权限

这里引用官网上的一个表格来说明:

权限分布

具体权限

表权限

‘Select’, ‘Insert’, ‘Update’, ‘Delete’, ‘Create’, ‘Drop’, ‘Grant’, ‘References’, ‘Index’, ‘Alter’

列权限

‘Select’, ‘Insert’, ‘Update’, ‘References’

过程权限

‘Execute’, ‘Alter Routine’, ‘Grant’

如何进行权限管理

据我所知有两种方式:

  1. 使用grant命令.
  2. 操作mysql数据库中的user表.

grant命令

grant命令就是前言中我使用的那种方式.

1. 修改权限

前言中该语句的详细解释如下:

grant all privileges on *.* to username@'%' identified by 'password';
  1. ALL PRIVILEGES 是表示所有权限,你也可以使用select、update等权限。
  2. ON 用来指定权限针对哪些库和表。
  3. *.* 中前面的号用来指定数据库名,后面的号用来指定表名。
  4. TO 表示将权限赋予某个用户。
  5. username@’%’ 表示username用户,@后面接限制的主机,可以是IP、IP段、域名以及%,%表示任何地方。
  6. IDENTIFIED BY 指定用户的登录密码。
  7. WITH GRANT OPTION 这个选项表示该用户可以将自己拥有的权限授权给别人。

2. 查看权限

2.1 查看当前用户的权限

show grants;

2.2 查看某一个用户的权限

show grants for 'root'@'localhost';

3.回收权限

revoke select on *.* from test@'%';

4.修改用户密码

SET PASSWORD FOR 'test'@'%' = PASSWORD('123456');

5.修改后刷新权限

flush privileges;

修改mysql中的user表

在命令行连接上mysql之后,显示所有的数据库,连接mysql数据库,查看其中的user表,然后查看user表的字段类型.

可以看到其中的字段代表的意义以及可取值.

对此数据表的操作将可以直接影响到用户的权限,具体操作方式与操作其他数据表并无区别,只需查看一下字段对应的意义即可,这里不再赘述.

数据库操作还是小心为妙啊,能用select权限就别用drop权限,否则不知道什么时候会手抖.

完。

ChangeLog

2018-11-22 完

以上皆为个人所思所得,如有错误欢迎评论区指正。

欢迎转载,烦请署名并保留原文链接。

联系邮箱:huyanshi2580@gmail.com

更多学习笔记见个人博客——>呼延十

var gitment = new Gitment({ id: 'Mysql权限管理', // 可选。默认为 location.href owner: 'hublanker', repo: 'blog', oauth: { client_id: '2297651c181f632a31db', client_secret: 'a62f60d8da404586acc965a2ba6a6da9f053703b', }, }) gitment.render('container')



本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券