我是靠谱客的博主 腼腆鼠标,最近开发中收集的这篇文章主要介绍mysql授权相关操作,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、 mysql授权和撤销

      授权使用 grant关键字,下面举三个例子:
1.grant select,insert on *.* to test@"local" Identified by "123";

这句命令的意思是,授权用户“test”(其口令为“123”)只能在本地localhost登录,可对任何 数据库 的任何表(“*.*”前一个“*”代表任何数据库,后一个“*”代表在前个“*”的约束下的任何表)进行select,insert的操作。

2.grant execute on procedure on city.student to test@"%" Identified by "123";
这句命令的意思是,授权用户“test”(其口令为“123”)可以任何主机登录,可对数据库"city”下的表“student”进行执行存储过程的操作。

3. grant all privileges on city.* to ca@"%" Identified by "123456";
这句命令的意思是,授权用户“ca”(其口令为“123456”)可以任何主机登录,可对数据库"city”下的所有表进行所有的操作。其中privileges可以省略。

GRANT 语句的语法如下:
      GRANT privileges (columns)
      ON db_name.table_name
      TO user_name@ip_domain IDENTIFIEDBY "password"

撤销权限
授权使用revoke 关键字
revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可: 
grant  all on *.* to   test@localhost; 
revoke all on *.* from test@localhost; 

二、mysql授权查看

1.查看len数据库已经授权的用户和权限
select * from mysql.db where db="len"

2.查看登录用户的权限
show privileges;

3.查看其它用户的权限
show grants for test@localhost; 

三、mysql授权相关操作

1.创建用户
insert into user (Host,User,Password) values ("localhost","work",PASSWORD("112233445566"));
这里创建了用户,并设置了初始密码,接着后面要进行授权语句的话,请执行
flush privileges;
否则授权语句找不到该用户。同样对某用户授权之后,要使权限马上生效,需要执行flush privileges;

2.关于上述ip_domain的可选项
   local或者localhost:只能在本机登录
   ‘%’:可以在任意位置登录
   ‘192.168.0.%’:只能在以某特定ip范围内的主机登录。

3.mysql的所有权限
| Select_priv 查询
| Insert_priv  插入
| Update_priv  更新
| Delete_priv  删除
| Create_priv  创建表,或者储存过程等
| Drop_priv    删除表或者存储过程等
| Grant_priv   给其他用户的授权操作
| References_priv  设置外键的擦做
| Index_priv   索引先关操作
| Alter_priv  修改表操作
| Create_tmp_table_priv  创建临时表操作
| Lock_tables_priv  表锁定操作
| Create_view_priv  创建视图操作
| Show_view_priv  查看视图
| Create_routine_priv 创建存储过程和函数
| Alter_routine_priv  修改存储过程和函数
| Execute_priv  调用存储过程的权限
| Event_priv  定时任务相关的权限
| Trigger_priv 触发器相关权限

四、Mysql授权的相关表

MySQL授权系统是由数据库中的五个表来实现,下面就为您详细介绍这五个和MySQL授权系统相关的表,如果您感兴趣的话,不妨一看。

MySQL服务器的特点之一是,它在控制每个用户行为方面提供了极大的灵活性。例如,我们既可以限制用户访问整个数据库,也可以限制用户访问数据库中特定的表,或者禁止访问特定表中的特定列。由此看出MySQL服务器在用户授权方面的灵活性。本文将向大家详细介绍MySQL服务器是如何处理用户权限的授与/撤回的,尤其是MySQL的授权表tables_priv和columns_priv。

MySQL授权系统通常是通过MySQL数据库中的五个表来实现的,这些表有user、db、host、tables_priv和columns_priv。这些表的用途各有不同,但是有一点是一致的,那就是都能够检验用户要做的事情是否为被允许的。每个表的字段都可分解为两类,一类为作用域字段,一类为权限字段。作用域字段用来标识主机、用户或者数据库;而权限字段则用来确定对于给定主机、用户或者数据库来说,哪些动作是允许的。下面,我们对这些表的作用做简单介绍:

user表——该表决定是否允许用户连接到服务器。如果允许连接,权限字段则为该用户的全局权限。

db表——用于决定哪些用户可以从哪些主机访问哪些数据库。包含在db表中的权限适用于这个表标识的数据库。

host表——当您想在db表的范围之内扩展一个条目时,就会用到这个表。举例来说,如果某个db允许通过多个主机访问的话,那么超级用户就可以让db表内将host列为空,然后用必要的主机名填充host表。

tables_priv表——该表与db表相似,不同之处是它用于表而不是数据库。这个表还包含一个其他字段类型,包括timestamp和grantor两个字段,用于存储时间戳和授权方。在本文后面我们会对这个表做进一步的讲解。

columns_priv——该表作用几乎与db和tables_priv表一样,不同之处是它提供的是针对某些表的特定列的权限。这个表也多出了一个字段类型,即其他字段,包括了一个timestamp列,用于存放时间戳。 在本文后面部分,我们还会对columns_priv表做进一步的说明。

ref: http://database.51cto.com/art/201010/230176.htm

最后

以上就是腼腆鼠标为你收集整理的mysql授权相关操作的全部内容,希望文章能够帮你解决mysql授权相关操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(81)

评论列表共有 0 条评论

立即
投稿
返回
顶部