`
jaychang
  • 浏览: 715009 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类
最新评论

MYSQL GRANT和REVOKE语法

阅读更多

 

GRANT priv_type [(column_list)] [, priv_type [(column_list)]] ...
    ON [object_type] {tbl_name | * | *.* | db_name.*}
    TO user [IDENTIFIED BY [PASSWORD] 'password']
        [, user [IDENTIFIED BY [PASSWORD] 'password']] ...
    [REQUIRE
        NONE |
        [{SSL| X509}]
        [CIPHER 'cipher' [AND]]
        [ISSUER 'issuer' [AND]]
        [SUBJECT 'subject']]
    [WITH with_option [with_option] ...]

object_type =
    TABLE
  | FUNCTION
  | PROCEDURE

with_option =
    GRANT OPTION
  | MAX_QUERIES_PER_HOUR count
  | MAX_UPDATES_PER_HOUR count
  | MAX_CONNECTIONS_PER_HOUR count
  | MAX_USER_CONNECTIONS count
REVOKE priv_type [(column_list)] [, priv_type [(column_list)]] ...
    ON [object_type] {tbl_name | * | *.* | db_name.*}
    FROM user [, user] ...

REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...
GRANTREVOKE语句允许系统管理员创建MySQL用户 账户,授予权限和撤销权限。

MySQL账户信息存储在mysql数据库的表中。在第5章:数据库管理中对本数据库和访问控制系统进行了详尽的讨论。要了解更多详细信息,您应该查询此章。

如果授权表拥有含有mixed-case数据库或表名称的权限记录,并且lower_case_table_names系统变量已设置,则不能使用REVOKE撤销权限,必须直接操纵授权表。(当lower_case_table_names已设置时,GRANT将不会创建此类记录,但是此类记录可能已经在设置变量之前被创建了。)

 

授予的权限可以分为多个层级:

·         全局层级

全局权限适用于一个给定服务器中的所有数据库。这些权限存储在mysql.user表中。GRANT ALL ON *.*REVOKE ALL ON *.*只授予和撤销全局权限。

·         数据库层级

数据库权限适用于一个给定数据库中的所有目标。这些权限存储在mysql.dbmysql.host表中。GRANT ALL ON db_name.*REVOKE ALL ON db_name.*只授予和撤销数据库权限。

 

注:

授权root 本地登录时候,给予所有权限,

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION

当后续目标是一个表、一个已存储的函数或一个已存储的过程时,object_type子句应被指定为TABLEFUNCTIONPROCEDURE。当从旧版本的MySQL升级时,要使用本子句,您必须升级您的授权表。请参见2.10.2节,“升级授权表”

要使用GRANTREVOKE,您必须拥有GRANT OPTION权限,并且您必须用于您正在授予或撤销的权限。

要撤销所有权限,需使用以下语法。此语法用于取消对于已命名的用户的所有全局层级、数据库层级、表层级和列层级的权限。

REVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...

 


要使用本REVOKE语法,您必须拥有mysql数据库的全局CREATE USER权限或UPDATE权限。

对于GRANTREVOKE语句,priv_type可以被指定为以下任何一种:

 

权限

意义

ALL [PRIVILEGES]

设置除GRANT OPTION之外的所有简单权限

ALTER

允许使用ALTER TABLE

ALTER ROUTINE

更改或取消已存储的子程序

CREATE

允许使用CREATE TABLE

CREATE ROUTINE

创建已存储的子程序

CREATE TEMPORARY TABLES

允许使用CREATE TEMPORARY TABLE

CREATE USER

允许使用CREATE USER, DROP USER, RENAME USERREVOKE ALL PRIVILEGES

CREATE VIEW

允许使用CREATE VIEW

DELETE

允许使用DELETE

DROP

允许使用DROP TABLE

EXECUTE

允许用户运行已存储的子程序

FILE

允许使用SELECT...INTO OUTFILELOAD DATA INFILE

INDEX

允许使用CREATE INDEXDROP INDEX

INSERT

允许使用INSERT

LOCK TABLES

允许对您拥有SELECT权限的表使用LOCK TABLES

PROCESS

允许使用SHOW FULL PROCESSLIST

REFERENCES

未被实施

RELOAD

允许使用FLUSH

REPLICATION CLIENT

允许用户询问从属服务器或主服务器的地址

REPLICATION SLAVE

用于复制型从属服务器(从主服务器中读取二进制日志事件)

SELECT

允许使用SELECT

SHOW DATABASES

SHOW DATABASES显示所有数据库

SHOW VIEW

允许使用SHOW CREATE VIEW

SHUTDOWN

允许使用mysqladmin shutdown

SUPER

允许使用CHANGE MASTER, KILL, PURGE MASTER LOGSSET GLOBAL语句,mysqladmin debug命令;允许您连接(一次),即使已达到max_connections

UPDATE

允许使用UPDATE

USAGE

“无权限”的同义词

GRANT OPTION

允许授予权限

·         列层级

列权限适用于一个给定表中的单一列。这些权限存储在mysql.columns_priv表中。当使用REVOKE时,您必须指定与被授权列相同的列。

·         子程序层级

CREATE ROUTINE, ALTER ROUTINE, EXECUTEGRANT权限适用于已存储的子程序。这些权限可以被授予为全局层级和数据库层级。而且,除了CREATE ROUTINE外,这些权限可以被授予为子程序层级,并存储在mysql.procs_priv表中。

分享到:
评论

相关推荐

    MySQL中文参考手册.chm

    7.23 DESCRIBE (描述)句法(得到列的信息) 7.24 LOCK TABLES/UNLOCK TABLES (锁定表/解锁表)句法 7.25 SET OPTION (设置选项)句法 7.26 GRANT (授权)和REVOKE (撤回)句法 7.27 CREATE ...

    MYSQL

    7.24 LOCK TABLES/UNLOCK TABLES (锁定表/解锁表)句法 7.25 SET OPTION (设置选项)句法 7.26 GRANT (授权)和REVOKE (撤回)句法 7.27 CREATE INDEX (创建索引)句法 7.28 DROP INDEX (抛弃索引)...

    MySQL中文参考手册

    * 3 MySQL的许可证和技术支持 o 3.1 MySQL的许可证政策 o 3.2 MySQL 使用的版权 + 3.2.1 可能的未来版权改变 o 3.3 MySQL商业性分发 o 3.4 许可证实例 + 3.4.1 销售使用 MySQL的产品 + 3.4.2 销售MySQL相关...

    PHP和MySQL Web开发第4版pdf以及源码

    9.5.5 使用GRANT和REVOKE的例子 9.6 创建一个Web用户 9.7 使用正确的数据库 9.8 创建数据库表 9.8.1 理解其他关键字的意思 9.8.2 理解列的类型 9.8.3 用SHOW和DESCRIBE来查看数据库 9.8.4 创建索引 9.9 理解...

    MySQL 最基本的SQL语法/语句

    DDL—数据定义语言(Create,Alter,Drop,DECLARE) DML—数据操纵语言(Select,Delete,Update,Insert) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 Create ...

    PHP和MySQL WEB开发(第4版)

    9.5.5 使用GRANT和REVOKE的例子 9.6 创建一个Web用户 9.7 使用正确的数据库 9.8 创建数据库表 9.8.1 理解其他关键字的意思 9.8.2 理解列的类型 9.8.3 用SHOW和DESCRIBE来查看数据库 9.8.4 创建索引 9.9 理解MySQL的...

    Sql语句语法大全

    -- 撤销权限REVOKE some_privileges ON some_databases(some_tables) FROM some_user@'localhost'; -- 刷新权限FLUSH PRIVILEGES; -- 权限粒度GRANT ALLREVOKE ALLON database_name.*ON database_name.table_na

    MySQL命令大全

     mysql>grant select,insert,delete,create,drop  on *.* (或test.*/user.*/..)  to 用户名@localhost  identified by ‘密码’;  如:新建一个用户帐号以便可以访问数据库,需要进行如下操作:  mysql>...

    MYSQL培训经典教程(共两部分) 1/2

    priv和columns_priv的权限列的内容 155 7.1.4权限系统工作原理 155 7.1.4.1权限系统工作的一般过程 155 7.1.4.2存取控制, 阶段1:连接证实 156 7.1.4.3存取控制,阶段2:请求证实 159 7.1.5 总结 161...

    计算机二级mysql数据库程序设计练习题(二).docx

    A.DROP B.ALTER C.REVOKE D.GRANT 9.MySQL中,下列关于授权的描述中,正确的是 ______。 A.只能对数据表和存储过程授权 B.只能对数据表和视图授权 C.可以对数据项、数据表、存储过程和存储函数授权 D.可以对属性列...

    MYSQL常用命令大全

     mysql>grant select,insert,delete,create,drop  on *.* (或test.*/user.*/..)  to 用户名@localhost  identified by '密码';  如:新建一个用户帐号以便可以访问数据库,需要进行如下操作:  mysql> ...

    PHP和MySQL Web开发第4版

    9.5.5 使用GRANT和REVOKE的例子 9.6 创建一个Web用户 9.7 使用正确的数据库 9.8 创建数据库表 9.8.1 理解其他关键字的意思 9.8.2 理解列的类型 9.8.3 用SHOW和DESCRIBE来查看数据库 9.8.4 创建索引 9.9 理解...

    MySQL授权问题总结

    下面是一些用grant增加用户和创建权限的例子: mysql> grant all privileges on *.* to test@localhost identified by ‘test’ with grant option; 这句增加一个本地具有所有权限的test用户(超级...

    数据库操纵,SQL.pdf

    1、SQL: Structured Query Language:结构化查询语言 2、SQL通用语法 ①、SQL 语句可以单行或多行书写,以分号结尾。 ②、可以使用空格和缩进来增强语句的可读性。 ③、MySQL 数据库的 SQL...关键字:GRANT,REVOKE等。

    mysql基础只是总结

    2、授权grant 收回权限revoke 3、授权语法 grant 权限 on 数据库.表 to 用户@域名或者IP identified by '密码' 4、收回权限 revoke 权限 on 数据库.表 from 用户@域名或者IP max_queries_per_hour 每个小时...

    MYSQL培训经典教程(共两部分) 2/2

    priv和columns_priv的权限列的内容 155 7.1.4权限系统工作原理 155 7.1.4.1权限系统工作的一般过程 155 7.1.4.2存取控制, 阶段1:连接证实 156 7.1.4.3存取控制,阶段2:请求证实 159 7.1.5 总结 161...

    SQL基础----DCL

    由于权限呢变更,需要将z1的权限变更,收回INSERT,只能对数据进行SELECT操作:用户z1重新登录后执行前面的语句以上例子中的grant和revoke分别授权和收回了用户z1的部分权限,达到了我们的目的。在使用MySQL过程中,...

    韩顺平oracle学习笔记

    第1讲:基础语法 内容介绍: 1.为什么学习oracle 2.介绍oracle及其公司的背景 3.学会安装、启动、卸载oracle 4.oracle开发工具 5.Sql*plus的常用命令 6.oracle用户管理 一、主流数据库包括: ?微软:sql server...

Global site tag (gtag.js) - Google Analytics