
前言
开发过程中,经常会需要创建数据库,比较安全的做法是对每一个数据库使用自己的用户授权和密码,而不是root走天下。
在开发过程中养成这样的好习惯,对于系统上生产环境部署也是大有裨益的。
本文记录了开发过程中常用的创建数据库、创建用户、用户授权相关的SQL,方便自己平时使用时查阅,也希望给有需要的人提供参考。
以创建数据库 lryx_nest
为例,授权访问用户名为 lryx_user
,授权访问密码为 m3wt1pt5n2f#
(PS:个人习惯,每次建立新项目时,用户名和项目相关,密码将之前的数据库密码保留#号,其余字符每一位随机修改)。
MySQL8之后,用户创建和授权sql进行了调整,请注意哦~
MySQL8支持直接给用户授权,同时也支持按照角色给用户授权。
一、MySQL 5.7
创建用户,并授予所有权限
grant all privileges on lryx_nest.* to lryx_user@'%' IDENTIFIED BY "m3wt1pt5n2f#";
撤销授权
revoke all on lryx_nest.* from lryx_user@'%';
创建用户-只读账号
grant select on lryx_nest.* to lryx_user@"%" IDENTIFIED BY "m3wt1pt5n2f#"
刷新权限
flush privileges;
二、MySQL 8 - 用户授权模式
创建用户
create user 'lryx_user'@'%' identified by 'm3wt1pt5n2f#';
用户授权
grant all privileges on lryx_nest.* to lryx_user@'%';
刷新权限
flush privileges;
修改用户
alter user set user.host='%' where user.user='lryx_user'
三、MySQL 8 - 角色授权模式
创建角色 lryx_nest_role
create role lryx_nest_role;
角色授权
grant all privileges on lryx_nest.* to lryx_nest_role;
创建用户
create user 'lryx_user'@'%' identified by 'm3wt1pt5n2f#';
赋予用户某个角色
grant lryx_nest_role to 'lryx_user'@'%';
刷新权限
flush privileges;
相关链接
原创文章,作者:宁白久,如若转载,请注明出处:《MySQL用户管理和角色授权设置》https://www.liangrenyixin.cn/article/p/7752529869407232
全部评论: 条