Mysql8用户权限设置

正确设置

转载:MySQL 8.0 创建用户及授权 - 掘金 (juejin.cn)

进入MySQL

1
2
mysql -u${username} -p${password}
复制代码
  • ${username}:MySQL用户名
  • ${password}:MySQL密码

进入数据库

如果没有数据库则先创建,若已存在数据库则跳过此步骤

创建数据库:

1
2
create database ${database};
复制代码

进入数据库:

1
2
use ${database};
复制代码

${database}:数据库名称

创建用户

1
2
create user '${username}'@'${host}' identified by '${password}';
复制代码

${username}:代表你要创建的此数据库的新用户账号

${host}:代表访问权限:

  • %:通配所有host地址权限(可远程访问)
  • localhost:本地权限(不可远程访问)
  • 指定特殊IP访问权限:如10.138.106.102

${password}:代表你要创建的此数据库的新密码

⚠️密码强度需要大小写及数字字母,否则会报密码强度不符合

1
2
create user 'testUser'@'%' identified by 'William...123';
复制代码

查看用户

进入系统数据库

1
2
use mysql;
复制代码

查看用户相关信息

1
2
select host, user, authentication_string, plugin from user;
复制代码

若展示的信息中有刚加入的用户testUser,则添加成功。切记查看完要切换回操作的数据库。

用户授权

1
2
grant ${auth} on ${database}.${table} to '${username}'@'${host}';
复制代码

${auth}:权限

  • all privileges:全部权限
  • select:查询权限
  • select,insert,update,delete:增删改查权限
  • select,[…]:查…等权限

database:数据库名{database}:数据库名 database:数据库名{table}:具体表名

  • *:代表全部表
  • A,B:代表具体A、B表

${username}:代表用户名

${host}:代表访问权限:

  • %:通配所有host地址权限(可远程访问)
  • localhost:本地权限(不可远程访问)
  • 指定特殊IP访问权限:如10.138.106.102
1
2
3
# 赋予test数据库user表增删改差权限
grant select,insert,update,delete on test.user to 'testUser'@'%';
复制代码

刷新权限

1
2
flush privileges;
复制代码

验证

撤销权限

1
2
revoke ${auth} on ${database}.${table} from '${username}'@'${host}';
复制代码

${auth}:权限

  • all privileges:全部权限
  • select:查询权限
  • select,insert,update,delete:增删改查权限
  • select,[…]:查…等权限

database:数据库名{database}:数据库名 database:数据库名{table}:具体表名

  • *:代表全部表
  • A,B:代表具体A、B表

${username}:代表用户名

${host}:代表访问权限:

  • %:通配所有host地址权限(可远程访问)
  • localhost:本地权限(不可远程访问)
  • 指定特殊IP访问权限:如10.138.106.102
1
2
3
4
5
# 撤销testUser用户对test数据库中的user表的增删改差权限
revoke select,insert,update,delete on test.user from 'testUser'@'%';
# 查看用户权限
show grants for 'testUser'@'%';
复制代码

删除用户

1
2
drop user '${username}'@'${host}';
复制代码

${username}:代表用户名

${host}:代表访问权限:

  • %:通配所有host地址权限(可远程访问)
  • localhost:本地权限(不可远程访问)
  • 指定特殊IP访问权限:如10.138.106.102
# 删除用户testUser
drop user 'testUser'@'%';
复制代码