Mysql权限角色管理

【*】在Linux下登录mysql数据库的命令

mysql -u root -p'lby'
  • -u:后面是是用户名
  • -p:后面是密码

【*】授予一个拥有所有权限的远程连接用户

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root1234%' WITH GRANT OPTION;
flush PRIVILEGES  #授予权限之后需要刷新权限
  •  GRANT ALL PRIVILEGES :授予所有权限
  • ON *.*:on后面是数据库
  • TO 'root'@'%':赋予给 root用户,@后面是ip,%:代表是通配符
  • IDENTIFIED  BY:后面是密码

【*】赋予用户查询权限

GRANT SELECT ON lby.* TO 'dev' @'192.168.0.%' IDENTIFIED BY '123' WITH GRANT OPTION;
  • 赋予对lby数据库中所有内容的查询功能 ,给网段在192.168.0.*的用户名为dev密码是123的用户
  • 其中ip地址为本机电脑的ip,本地的电脑ip必须符合Mysql授予权限的ip,否则登录不上
  • 授予权限之后在mysq权限表中可以查询到

  • 赋予该用户对数据库只有查询功能,那么该用户只能对数据库的表进行查询,而不能进行其他操作

【*】连接测试

【*】删除授予用户的权限

  • 删除之前,对mall数据库查询,修改,删除,插入等都有权限

  • 撤销查询权限指令
REVOKE SELECT on mall.* from 'dev'@'192.168.0.%'
FLUSH PRIVILEGES  #刷新权限
  •  结果,查询权限已经消失

  • 撤销所有的权限
REVOKE ALL on mall.* from 'dev'@'192.168.0.%';
FLUSH PRIVILEGES

【*】删除用户

  • 删除前

  • 删除命令
DELETE FROM user WHERE User="LAPTOP-PB00EUEG" and Host = '192.168.0.108'
  • 删除后 

【*】Mysql权限涉及的表

  • User 的一行记录代表一个用户标识

  • db 的一行记录代表对哪个数据库的权限

  • table_priv 的一行记录代表对表的权限
  • column_priv 的一行记录代表对某一列的权限

【*】mysql创建数据库使用utf8和utf8mb4区别

  • mysql支持的 utf8 编码最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常
  • Emoji 表情,不常用的汉字就没办法存储,常见于ios和android ,使用utf8mb4则可以解决这个问题
  • CHAR 类型数据,utf8mb4 会多消耗一些空间,根据 Mysql 官方建议,使用 VARCHAR  替代 CHAR

【*】每个用户都要授权比较麻烦,mysql在5.7之后引入了类似于用户组的功能

  • 查看mysql的环境变量,查看当前proxy是否开启,下图表示没有开启
show variables like "%proxy%"

  • #开启proxy 下图表示已开启,需要在root权限下操作,不然权限不够,没办法设置
set global check_proxy_users =on;
set global mysql_native_password_proxy_users = on;

【*】创建一个角色

  • 创建一个角色(Mysql中这个角色就是用户,把角色赋予用户,就是将角色赋予角色)
create USER 'dev_role'
  • 创建两个用户
create USER 'lby1';
create USER 'lby2';
  • 查看lby1用户的权限
show GRANTS for 'lby1'

  • 把角色付给用户(其实这里把角色理解为用户组比较好些,换一种说法就是把lby1和lby2用户添加到dev_role用户组中)
    • 注意此处需要在mysql的服务器上进行一个操作,才能使远程连接的计算机完成赋予权限的操作
  • 此处在远程将用户付给角色,没有使用密码
grant proxy on 'dev_role' to 'lby1';
grant proxy on 'dev_role' to 'lby2'
  • 将权限赋给角色
grant select(id,name) on lby.account to 'dev_role'
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
  • 连接lby1v测试

  • 查询表所有内容测试,发现并不能访问表的所有内容,因为上面只是将account中的id和name列的查询权限赋给dev_role角色

  • 只查询id和name字段是可以的

  • 角色权限存放的位置

  • 结构解析

bin:区分大小写

ci:不区分大小写

datatime:没有时区的概念

timestamp:有时区的概念

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SuperLBY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值