MySQL进行权限管理的方法

  介绍

这篇文章主要介绍了MySQL进行权限管理的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

MySQL的权限表在数据库启动的时候就载入内存,当用户通过身份认证后,就在内存中进行相应权限的存取,这样,此用户就可以在数据库中做权限范围内的各种操作了。

一、权限表的存取

在权限存取的两个过程中,系统会用到“MySQL”数据库(安装MySQL时被创建,数据库名称叫“MySQL”)中用户、主机和db这3个最重要的权限表。

在这3个表中,最重要的表示用户表,其次是数据库表,主机表在大多数情况下并不使用。

用户中的列主要分为4个部分:用户列,权限列,安全列和资源控制列。

通常用的最多的是用户列和权限列,其中权限列又分为普通权限和管理权限。普通权限用于数据库的操作,比如<代码> select_priv ,<代码> super_priv 等。

当用户进行连接时,权限表的存取过程有以下两个过程:

<李>

先从用户表中的主机、用户名和密码这3个字段中判断连接的IP,用户名,和密码是否存在于表中,如果存在,则通过身份验证,否则拒绝连接。

<李>

如果通过身份验证,则按照以下权限表的顺序得到数据库权限:用户→德国联邦铁路(db)→tables_priv→李columns_priv .

在这几个权限表中,权限范围依次递减,全局权限覆盖局部权限。上面的第一阶段好理解,下面以一个例子来详细解释一下第二阶段,
<强>为了方便测试,需要修改变量sql_mode

//sql_mode默认值中有NO_AUTO_CREATE_USER(防止格兰特自动创建新用户,除非还指定了密码)   设置会话sql_mode=& # 39; STRICT_TRANS_TABLES NO_ENGINE_SUBSTITUTION& # 39;;
1。创建用户zj@localhost,并赋予所有数据库上的所有表的选择权限
MySQL (MySQL)比;格兰特选择> MySQL (MySQL)比;select *从db用户=& # 39;zj # 39;\ G;   空集(0.00秒)

可以发现,用户表的select_priv列是“Y”,而数据库表中并没有记录,也就是说,对所有数据库都具有相同的权限的用户并不需要记录到数据库表,而仅仅需要将用户表中的select_priv改为“Y”即可。换句话说,用户表中的每个权限都代表了对所有数据库都有权限。

3。将zj@localhost上的权限改为只对t2数据库上所有表的选择权限。
MySQL (MySQL)比;取消选择> MySQL (MySQL)比;MySQL>[(一)]的所有特权授予的在>的所有特权授予MySQL (MySQL)比;>的所有特权授予MySQL (MySQL)比;格兰特选择、插入、更新、删除> <李>

主机值可以是主机名或IP号,或“localhost”指出本地主机。

<李>

可以在主机列值使用通配符字符“%”和“_”

<李>

主机值“%”匹配任何主机名,空主机值等价于“%”,它们的含义与像操作符的模式匹配操作相同。

<强>注意: mysql数据库的用户表中主机的值为“*”或者空,表示所有外部IP都可以连接,但是不包括本地服务器localhost,因此,如果要包括本地服务器,必须单独为localhost赋予权限。

<编辑>(5)授予超级,过程,文件权限给用户zj3@ % mysql (mysql)比;格兰特超级、流程文件> MySQL (MySQL)比;格兰特超级、流程文件> MySQL (MySQL)比;格兰特使用> show user@host赠款;

示例:

MySQL[(一)]比;显示zj@localhost拨款;   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   |拨款zj@localhost |   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   |> MySQL[(一)]的所有特权授予的在显示zj4@localhost拨款;   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   |拨款zj4@localhost |   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   |格兰特使用MySQL>[(一)]比;格兰特选择MySQL>[(一)]比;显示赠款& # 39;zj4& # 39; @ # 39; localhost # 39;;   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   |拨款zj4@localhost |   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   |格兰特选择、插入> MySQL((没有))比;取消选择、插入> shell>mysqladmin - u user_name - h host_name密码“123456”

MySQL进行权限管理的方法