mysql8.0限制用户只能访问指定数据库,限制用户只有某种权限
mysql8有新的安全要求,不能像之前的版本那样一次性创建用户并授权需要先创建用户,再进行授权操作
- 创建新用户:
create user '#userName'@'#host' identified by '#passWord';
#userName 代表你要创建的此数据库的新用户账号#host 代表访问权限,如下
- %代表通配所有host地址权限(可远程访问)
- localhost为本地权限(不可远程访问) 指定特殊Ip访问权限如10.138.106.102
- #passWord 代表你要创建的此数据库的新用密码
注意:密码强度需要大小写及数字字母,否则会报密码强度不符合⚠️用户名如果重复,会报错ERROR 1396 (HY000): Operation CREATE USER failed for 'testUser'@'%'
- 为用户授权:
grant #auth on #databaseName.#table to '#userName'@'#host';
- #auth 代表权限,如下
- all privileges 全部权限
- select 查询权限
- select,insert,update,delete 增删改查权限
- select,[…]增…等权限
- #databaseName 代表数据库名#table 代表具体表,如下
*代表全部表
A,B 代表具体A,B表
- #userName 代表用户名
- #host 代表访问权限,如下
- %代表通配所有host地址权限(可远程访问)
- localhost为本地权限(不可远程访问) 指定特殊Ip访问权限如10.138.106.102
- 授权之后刷新权限:
flush privileges;
- 如果遇到 Authentication plugin ‘caching_sha2_password’ cannot be loaded