Home  >  Article  >  Database  >  MYSQL Grant,Revoke用户权限管理用法介绍

MYSQL Grant,Revoke用户权限管理用法介绍

WBOY
WBOYOriginal
2016-06-07 17:52:461405browse

本文章详细的介绍一下关于MYSQL Grant,Revoke用户权限管理用法介绍,有需要的朋友可参考参考。

MySQL可以为不同的用户分配严格的、复杂的权限。这些操作大多都可以用SQL指令Grant(分配权限)和Revoke(回收权限)来实现。 Grant可以把指定的权限分配给特定的用户,如果这个用户不存在,则会创建一个用户。

Grant 常用格式:

grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;

权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。
当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%’表示从任何地址连接。
‘连接口令’不能为空,否则创建失败。

比较重要的是priveleges(权限)。
普通用户的权限权限应用于描述
SELECT表,列允许用户从表中选择行(记录)
INSERT表,列允许用户在表中插入新行
UPDATE表,列允许用户修改现存表里行中的值
DELETE表允许用户删除现存表的行
INDEX表允许用户创建和拖动特定表索引
ALTER表允许用户改变现存表的结构。例如,可添加列、重命名列或表、修改列的数据类型
CREATE数据库,表允许用户创建新数据库或表。如果在GRANT中指定了一个特定的数据库或表,他们只能够创建该数据库或表,即他们必须首先删除(Drop)它
DROP数据库,表允许用户拖动(删除)数据库或表

管理员权限权限描述
CREATE TEMPORARY TABLES允许管理员在CREATE TABLE语句中使用TEMPORARY关键字
FILE允许将数据从文件读入表,或从表读入文件
LOCK TABLES允许使用LOCK TABLES语句
PROCESS允许管理员查看属于所有用户的服务器进程
RELOAD允许管理员重新载入授权表、清空授权、主机、日志和表格
REPLICATION CLIENT允许在复制主机(Master)和从机(Slave)上使用SHOW STATUS
REPLICATION SLAVE允许复制从服务器连接到主服务器
SHOW DATABASES允许使用SHOW DATABASES语句查看所有的数据库列表。没有这个权限,用户只能看到他们能够看到的数据库
SHUTDOWN允许管理员关闭MySQL服务器
SUPER允许管理员关闭属于任何用户的线程

特别的权限权限描述
ALL(或ALL PREVILEGES)授予所有权限
USAGE不授予权限。这将创建一个用户并允许他登录,但不允许其他操作,如update/select 等

实例:

例如:

 代码如下 复制代码
mysql>grant select,insert,update,delete on test.user to mql@localhost identified by ‘123456′;

给 本地的用户mql分配可对数据库test的user表进行select,insert,update,delete操作的权限,并设定口令为 123456。若mql用户不存在,则将自动创建此用户. 具体的权限控制在mysql.db表中可以查看到.也可直接对这个表进行更新操作进行权限的修改.

 代码如下 复制代码
mysql>grant all privileges on test.* to mql@localhost identified by ‘123456′;

给本地用户mql分配可对数据库test所有表进行所有操作的权限,并设定口令为123456。

 代码如下 复制代码
mysql>grant all privileges on *.* to mql@localhost identified by ‘123456′;

给本地用户mql分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123456。

 代码如下 复制代码
mysql>grant all privileges on *.* to mql2@61.127.46.128 identified by ‘123456′;

给来自61.127.46.128的用户mql2分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123456。

REVOKE
REVOKE和作用和GRANT相反,语法格式为:
REVOKE privileges ON 数据库名[.表名] FROM user_name

例如:
创建用户Bob,密码为“bob”,但不给他任何权限:

 代码如下 复制代码
GRANT usage on * to Bob identified by ’bob’;

授予Bob在books数据库中的查询和插入权限:

 代码如下 复制代码
GRANT select, insert on books.* to   Bob;

取消Bob在books数据库中的所有权限:

 代码如下 复制代码
REVOKE all on books.* from Bob;

注:需要指出的是,REVOKE all…仅仅是回收用户的权限,并不删除用户。在MySQL中,用户信息存放在mysql.User中。MySQL可以通过DROP USER来彻底删除一个用户,其用法为:

 代码如下 复制代码
DROP USER user_name;

例如,要删除用户Bob,可以用:

 代码如下 复制代码
DROP USER Bob;
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn