Mysql8用户权限设置
正确设置
进入MySQL
1 | mysql -u${username} -p${password} |
- ${username}:MySQL用户名
- ${password}:MySQL密码
进入数据库
如果没有数据库则先创建,若已存在数据库则跳过此步骤
创建数据库:
1 | create database ${database}; |
进入数据库:
1 | use ${database}; |
${database}:数据库名称
创建用户
1 | create user '${username}'@'${host}' identified by '${password}'; |
${username}:代表你要创建的此数据库的新用户账号
${host}:代表访问权限:
- %:通配所有
host
地址权限(可远程访问) - localhost:本地权限(不可远程访问)
- 指定特殊IP访问权限:如10.138.106.102
${password}:代表你要创建的此数据库的新密码
⚠️密码强度需要大小写及数字字母,否则会报密码强度不符合
1 | create user 'testUser'@'%' identified by 'William...123'; |
查看用户
进入系统数据库
1 | use mysql; |
查看用户相关信息
1 | select host, user, authentication_string, plugin from user; |
若展示的信息中有刚加入的用户testUser,则添加成功。切记查看完要切换回操作的数据库。
用户授权
1 | 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 | # 赋予test数据库user表增删改差权限 |
刷新权限
1 | flush privileges; |
验证
撤销权限
1 | 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 | # 撤销testUser用户对test数据库中的user表的增删改差权限 |
删除用户
1 | drop user '${username}'@'${host}'; |
${username}:代表用户名
${host}:代表访问权限:
- %:通配所有
host
地址权限(可远程访问) - localhost:本地权限(不可远程访问)
- 指定特殊IP访问权限:如10.138.106.102
# 删除用户testUser
drop user 'testUser'@'%';
复制代码