赞
踩
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,看他能做些什么
可见,匿名用户有权看到两个数据库:一个名为information_schema的系统数据库和一个test数据库。它对test数据库拥有全部权限,可以在里面创建表,进行DML操作等。对information_schema系统数据库中的表拥有查询权限,但是不能执行DML操作
低版本数据库存在,高版本已经不允许匿名用户登录数据库,系统中不存在匿名用户
02.权限的分类
<
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。