0
点赞
收藏
分享

微信扫一扫

Mysql 创建用户 && 设置权限

1.创建用户授权

# 8.0之前
# 创建一个用户并授权
GRANT ALL PRIVILEGES ON *.* to '用户名'@'主机' IDENTIFIED BY '密码' WITH GRANT OPTION;
flush privileges;

# 8.0之后
create user '用户名'@'主机' identified by '密码';
grant all on *.* to '用户名'@'主机'  with grant option;

ALL PRIVILEGES 是表示所有权限(select,insert,update,delete.....)
ON 用来指定权限针对哪些库和表
*.* 中前面的*号用来指定数据库名,后面的*号用来指定表名(注意: 如果数据库名字中带有 - 需要加``)
jack@'localhost' 表示jack用户
@后面接限制的主机,可以是IP、IP段、域名以及%,%表示任何地方
IDENTIFIED BY 指定用户的登录密码
WITH GRANT OPTION 这个选项表示该用户可以将自己拥有的权限授权给别人

示例:
CREATE USER 'test'@'localhost' IDENTIFIED BY '123456';

grant all privileges on `admin`.* to 'test'@'localhost' with grant option;

2.刷新权限

flush privileges;

3.修改用户密码

# 方式一(需要进入mysql库,并刷新权限,8.0取消了password函数,直接authentication_string='密码')
update user set authentication_string=password('密码') where user='用户名';

# 方式二(受安全策略影响)
alter user '用户名'@'主机' identified with mysql_native_password by '密码';

# 刷新
flush privileges;

4.查看权限

# 查看当前用户权限
show grants;
# 查看指定用户
show grants for '用户名'@'主机';

5.回收权限

# 回收所有权限
revoke all privileges on *.* from '用户名'@'主机';
# 回收权限传递
revoke grant option on *.* from '用户名'@'主机';

6.删除用户

# 使用mysql数据库
use mysql 
# 查看用户
select host,user from user;
# 删除用户
drop user '用户名'@'主机';

7.重命名账号

rename user 'jack'@'%' to 'jim'@'%';

8.设置远程连接

% :主机为%表示可以远程连接
# 远程连接
mysql -u用户名 -h地址 -p

# 如果不能连接
1.修改用户信息
update user set host='%' where user ='root';
2.修改配置
注释 /etc/my.cnf下的 bind-address=127.0.0.1

举报

相关推荐

0 条评论