MySQL用户及权限管理

01.了解mysql的默认用户
02.权限的分类
03.用户的创建
04.给用户授权
05.废除用户权限

mysql认证方式:
root(用户名)@localhost(登录主机的地址–客户端) 密码
客户端: 要通过什么用户通过什么密码登录服务器
我们要关注:用户名 密码 要登录的服务器的ip地址 服务器提供的mysql服务的端口号
服务器: 验证客户端的登录信息是否在用户表里
验证:用户名(user) 密码(authentication_string) 客户端的登陆主机(host登陆地址)
如果以上三个信息都在mysql.user(涉及到客户端连接)表中,登陆成功
01.了解mysql的默认用户
1.在低版本(5.6及之前版本)中,有匿名用户存在,不存在用户=匿名用户,匿名用户的权限很低,有时候正常用户登陆进去会被认为是匿名用户,导致什么也做不了,所以在低版本中登陆进去先操作delect from mysql.user where user=’’;删除匿名用户.
2.当全新的MySQL数据库安装完毕后,系统就为我们默认地创建了几个用户:管理员用户root以及匿名用户。通过查看名为mysql的系统数据库中的user表,可以看到所有的用户名及其全局权限(Global Privileges).
mysql> select user,host from mysql.user;
±--------------±----------+
| user | host |
±--------------±----------+
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
±--------------±----------+
6 rows in set (0.00 sec)
mysql>
查看某个用户有那些权限:
mysql> show grants for ‘mysql.sys’@‘localhost’;
±--------------------------------------------------------------+
| Grants for mysql.sys@localhost |
±--------------------------------------------------------------+
| GRANT USAGE ON . TO ‘mysql.sys’@‘localhost’ |
| GRANT TRIGGER ON sys.* TO ‘mysql.sys’@‘localhost’ |
| GRANT SELECT ON sys.sys_config TO ‘mysql.sys’@‘localhost’ |
±--------------------------------------------------------------+
3 rows in set (0.00 sec)
mysql>
Usage是什么权限呢?
mysql> show privileges;
Usage | Server Admin | No privileges - allow connect only 没有权限,只允许连接

想看一个用户是否有全局权限,可以
mysql> select * from mysql.user\G;全是y的有全局权限
3.mysql的默认用户
3.1‘mysql.sys’@’localhost’:
用于 sys schema中对象的定义。使用 mysql.sys 用户可避免DBA重命名或者删除 root用户时发生的问题。该用户已被锁定,客户端无法连接。
3.2‘mysql.session’@’localhost’:
插件内部使用来访问服务器。该用户已被锁定,客户端无法连接。
3.3‘root’@’localhost’:
其用于管理。该用户拥有所有权限,可执行任何操作。
注意:
权限:
不要轻易的授权给用户超级权限
授予给用户的权限只要满足用户的操作即可(层层审核),不要赋予多余的权限
db1 t1 t2 dml(select/insert/delete/update)
db1.* t3(财务数据) delete
3.4了解不存在用户(匿名用户)的默认行为
匿名用户风险:可能真实存在在数据库的用户,在登录时被当做匿名用户,这时 候访问数据库受到限制
匿名用户对于数据库来说没有任何有价值的操作
真实存在的用户有生产库/业务库的真实权限
但是匿名用户对于数据库自身来说是没有任何风险的
登录数据库后:
mysql> select user,host from mysql.user;
检查下数据库中是否有匿名用户
匿名用户的特点是mysql.user表中user列值=’’;是空不是null.
示例:下面在本机以一个不存在的用户12345来连接MySQL,看他能做些什么
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值