MySQL 用户登录与操作执行
2014-12-11 11:44
316 查看
一个用户可以不登录进Mysql 数据库,由两方面的因数决定
1、你是谁:也就是mysql 数据库中记录的用户名和密码,在SQL Server数据库,中只要求说明你是谁就可以登录了,可是mysql 不是这样的它还要看第二条
2、出生:你是京城皇宫里的张三,还是山沟沟里的张三,在mysql 看来你是两个不同的人。
mysql 把这些重要信息记录在mysql.user 表中 (User,Password)-->你是谁 (Host)-->你是那里人(出生地)
![](http://images.cnitblog.com/blog/643807/201412/111103599153123.png)
发现没有光是root 就有4 个哦。
-------------------------------------------------------------------------------------------------------------------------
我们最终的目的不只是为了连接上mysql 数据库更是为了可以对里面的数据进行操作。面要进行操作我们首先要取得相应的权限!用户的权限记录在如下几张表中
1 mysql.user 它记录了用户的全局权限这个也是最大粒度的权限,这样说了也说不明白,还是来个例子
![](http://images.cnitblog.com/blog/643807/201412/111116199782018.png)
root 用户的Select_Priv 为Y 说明它可以查询 mysql 任何一个数据库中的任何对象。这么强大的权限如果我只是想把用户的权限控制在某一个数据库中呢!
这个粒度的权限就与mysql.db表对应
2 mysql.db 它记录了哪个用户对哪个数据库有哪些权限,还是老样子直接上例子
![](http://images.cnitblog.com/blog/643807/201412/111127028539452.png)
看见没有User 列没有记录root 用户哦!那么问题就来了,为毛root 可以查询任何数据库中的表呢?这个里因为记录再了mysql.user表里面,在mysql.user 表中的
Select_Priv = Y 是针对所有数据库的,也就是说当root 运行一查询时,首先去看一下mysql.user 看有没有运行这一查询的权限,如果有就执行,如果没有就去 mysq.db 表中看一下有没有这个权限。看到了没有权限的粒度每小一级就会多一次判断!这可以会影响性能。
3 mysql.tables_priv 上面说了这么多我想这个就不用多说了,看名字就知道了它是表一级的控制。
4 mysql.columns_priv 列级别的粒度控制
5 mysql.proc_priv 存储过程与函数级别的粒度控制
1、你是谁:也就是mysql 数据库中记录的用户名和密码,在SQL Server数据库,中只要求说明你是谁就可以登录了,可是mysql 不是这样的它还要看第二条
2、出生:你是京城皇宫里的张三,还是山沟沟里的张三,在mysql 看来你是两个不同的人。
mysql 把这些重要信息记录在mysql.user 表中 (User,Password)-->你是谁 (Host)-->你是那里人(出生地)
![](http://images.cnitblog.com/blog/643807/201412/111103599153123.png)
发现没有光是root 就有4 个哦。
-------------------------------------------------------------------------------------------------------------------------
我们最终的目的不只是为了连接上mysql 数据库更是为了可以对里面的数据进行操作。面要进行操作我们首先要取得相应的权限!用户的权限记录在如下几张表中
1 mysql.user 它记录了用户的全局权限这个也是最大粒度的权限,这样说了也说不明白,还是来个例子
![](http://images.cnitblog.com/blog/643807/201412/111116199782018.png)
root 用户的Select_Priv 为Y 说明它可以查询 mysql 任何一个数据库中的任何对象。这么强大的权限如果我只是想把用户的权限控制在某一个数据库中呢!
这个粒度的权限就与mysql.db表对应
2 mysql.db 它记录了哪个用户对哪个数据库有哪些权限,还是老样子直接上例子
![](http://images.cnitblog.com/blog/643807/201412/111127028539452.png)
看见没有User 列没有记录root 用户哦!那么问题就来了,为毛root 可以查询任何数据库中的表呢?这个里因为记录再了mysql.user表里面,在mysql.user 表中的
Select_Priv = Y 是针对所有数据库的,也就是说当root 运行一查询时,首先去看一下mysql.user 看有没有运行这一查询的权限,如果有就执行,如果没有就去 mysq.db 表中看一下有没有这个权限。看到了没有权限的粒度每小一级就会多一次判断!这可以会影响性能。
3 mysql.tables_priv 上面说了这么多我想这个就不用多说了,看名字就知道了它是表一级的控制。
4 mysql.columns_priv 列级别的粒度控制
5 mysql.proc_priv 存储过程与函数级别的粒度控制
相关文章推荐
- MySQL非root用户执行增加用户及用户权限的操作
- mysql笔记(三)-- 用户登录(二):保存用户操作日志的方法
- 保存mysql用户的登录信息到~.my.cnf文件;用于方便登录操作。
- mysql颠覆实战笔记(三)-- 用户登录(二):保存用户操作日志的方法
- php基础系列:从用户登录处理程序学习mysql扩展基本操作
- php基础系列:从用户登录处理程序学习mysql扩展基本操作
- 练习:python 操作Mysql 实现登录验证 用户权限管理
- MYSQL 下一些常用操作命令:新建用户、修改密码、修改登录host等
- php基础系列:从用户登录处理程序学习mysql扩展基本操作
- 临时以其它登录用户来执行操作
- mysql常用操作-----修改用户密码
- Mysql用户操作大全
- MySQL新建用户,授权,删除用户,修改密码操作
- MySQL命令行 不同端口登录 执行SQL文件 创建用户 赋予权限 修改root密码
- SilverLight学习笔记--如何在xaml文件中操作用户在后台代码定义的类(2)--示例篇:创建一个登录控件(原创)(转载本文请注明出处)
- [FAQ]MySQL新建用户无法登录?
- ADO执行update 报错“操作已被用户取消”
- 转载:Linux启动过程(从执行init到用户登录部分)
- linux下mysql的最常用的操作指令_创建用户、备份和还原数据库
- 改变地址栏的URL的参数的时候,提示用户无权执行操作