MySQL8.0用户权限管理

创建用户

创建 tom 用户 密码为 123 , 并且只有同网段可访问.

(root@localhost) [(none)]> create user tom@'192.168.239.%' identified by '123';

注意: 用户名 + @ + 访问方式 才是一个用户

        tom@'192.168.239.131' 和   tom@'192.168.239.132' 不是同一个用户

        identified by 后面为密码

        用户名或者访问方式上的引号可以不加, 但是如果有特殊字符, 必须要加上.

查看用户信息

(root@localhost) [(none)]> select user,host,plugin from mysql.user;

user : 用户名

host : 连接方式 (%所有客户端都可访问, 192.168.239.% 同网段可访问, localhost 仅本地访问)

plugin : 密码加密插件 

修改用户密码和连接方式

修改用户密码

将tom 的密码由123 改成 456

(root@localhost) [(none)]> alter user tom@'192.168.239.%' identified by '456';

 注意 : 如果密码设置或修改失败, 可能是密码太简单导致, 需要修改MySQL密码设置限制,将等级调低.

修改用户连接方式

将tom 的允许同网段连接,改成允许所有连接(%)

(root@localhost) [(none)]> update mysql.user set host='%' where user = 'tom';

(root@localhost) [(none)]> flush privileges;

删除用户

删除 jery 用户

(root@localhost) [(none)]> drop user jery@'%';

 

查看用户权限

查看当前用户权限信息

(root@localhost) [(none)]> show grants;

 查看指定用权限

(root@localhost) [(none)]> show grants for tom@'192.168.239.%';

授予权限

(root@localhost) [(none)]> grant select,update,insert on test.* to tom@'%';

  • grant: 关键字 
  • test.*: 作用域,test库所有表 
  • 'tom'@'192.168.150.%': 哪个用户 

授予所有权限

(root@localhost) [(none)]> grant all privileges on *.* to tom@'%';

授予用户授予其他用户权限的权限

(root@localhost) [performance_schema]> grant select ,update,insert,delete on test.* to 'tom'@'%' with grant option;

  • with grant option : 授予tom用户授予权限的权限  

删除用户权限

(root@localhost) [(none)]> revoke insert on test.* from tom@'%';

  •  删除 insert 权限

 删除授予权限

(root@localhost) [(none)]> revoke grant option on test.* from tom@'%';

删除所有权限 

(root@localhost) [(none)]> revoke all on test.* from tom@'%';

  •  revoke仅删除权限, 不删除用户
  • revoke all 后还是会有一个USAGE 权限

用户与角色

-- 创建role

create role dev;

grant all on test.* to dev with grant option;

-- 删除角色权限

revoke grant option on test.* from dev;

-- 用户与角色绑定

create user tom@'%' identified by '123';

grant dev to tom@'%';

-- 显示用户权限

show grants for 'dev1_tom'@'%';

show grants for 'dev1_tom'@'%' using dev;

-- 删除用户的角色

revoke dev from tom@'%';

MySQL修改权限的生效

  • 执行grant,revoke,set password, rename user命令修改权限后,MySQL会自动将修改后的权限信息同步加载到系统内存中
  • 如果执行insert/update/delete 操作上述系统权限表后,则必须再执行刷新权限命令才能同步到系统内存中,刷新权限命令包括: flush privileges / mysqladmin flush-privileges / mysqladmin reload
  • 如果是修改tables和columns级别权限, 则客户端的下次操作新权限就会生效
  • 如果是修改database级别权限, 则新权限在客户端执行use database命令后生效
  • 如果是修改global级别权限,则需要重新创建连接新权限才能生效
  •  -skip-grant-tables 可以跳过所有系统权限表而允许所有用户登录,只在特殊情况下暂时使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值