`
jaychang
  • 浏览: 728093 次
  • 性别: 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语法手册-mysql语法手册-mysql语法手册-mysql语法手册

    通过阅读“mysql操作语法.htm”、“mysql语法.html”和“MySQL学习笔记.pdf”,你可以逐步掌握MySQL的所有关键语法和最佳实践。在学习过程中,不断实践和理解每个概念,将有助于提升你在数据库领域的专业技能。

    MySQL:grant_语法详解(MySQL_5.X)

    在MySQL 5.X版本中,grant语句是用来授权给用户权限的命令。该命令能够实现将特定的权限赋予MySQL中的特定用户,从而控制他们对数据库的操作。 一、权限的基本分类 MySQL中的权限大致可以分为两类:一类是普通数据...

    mysql操作和语法

    MySQL的权限系统允许管理员对用户进行细粒度控制,如GRANT和REVOKE语句用于赋予或撤销用户的操作权限。 七、备份与恢复 1. 数据库备份:`mysqldump`命令用于生成SQL脚本或二进制文件备份。 2. 数据恢复:使用`mysql...

    MySQL语法 Dos下的所有语法

    以下是一些关键的MySQL语法和操作的详细说明: 1. **启动MySQL服务器**: 通过`winmysqladmin`或直接在DOS命令行中运行`d:mysqlbinmysqld`来启动MySQL服务。 2. **进入MySQL交互界面**: 打开DOS命令行,然后...

    mysql基本语法大全

    以上就是MySQL的一些基本语法和操作,涵盖了数据库的创建、使用、删除,表的管理和查询,用户权限的设置,以及数据备份和恢复等关键功能。熟练掌握这些命令,将有助于你在实际工作中高效地管理MySQL数据库。

    MySQL5.1常用语法汇总

    MySQL5.1是MySQL数据库管理系统的一个重要版本,它包含了丰富的SQL语法和管理工具,使得数据库的管理和操作更为便捷。以下是一些MySQL5.1常用语法的详细说明: 1. **数据库操作**: - `SHOW DATABASES;`:用于列出...

    MySQL-Grant命令说明

    ### MySQL Grant 命令详解:用户权限管理与分配 #### 概述 在数据库管理中,权限控制是一项至关重要的任务,它确保了数据的安全性和完整性。MySQL通过`GRANT`命令提供了强大的权限管理功能,允许数据库管理员为...

    mysql语法文档

    mysql语法文档 mysql语法文档是mysql数据库管理系统的使用手册,涵盖了mysql的基本语法、C API编程接口等内容。本文档适合初学者学习mysql语法,也可以作为已经掌握mysql的开发者的一份参考手册。 mysql语法部分:...

    MYSQL语法参考手册参考大全

    MySQL通过GRANT和REVOKE语句控制用户对数据库、表、列的访问权限。用户账户管理涉及CREATE USER、ALTER USER、DROP USER等语句。 十三、性能优化 MySQL提供了很多工具和策略来优化性能,如查询优化器、索引设计、...

    MySQL语法语句大全MySQL语法语句大全

    MySQL是一种广泛使用的开源...以上就是MySQL语法语句的基本框架,每个部分都有许多细分的细节和用法,需要通过实际操作和学习来深入了解和掌握。实践中,根据业务需求灵活运用这些语句,可以实现高效的数据管理和处理。

    MySQL的Grant命令

    本文将详细介绍MySQL中`GRANT`命令的基本语法、应用场景以及如何使用该命令进行权限分配。 #### 二、基本概念 在开始之前,我们需要了解几个基本的概念: 1. **权限**:指用户能够对数据库执行的操作类型,如...

    MySQL数据库用户帐号管理基础知识详解.doc

    在MySQL中,管理员可以通过GRANT和REVOKE语句来控制用户对数据库资源的访问权限。本文档详细介绍了这些基础概念。 GRANT语句是创建用户和分配权限的主要工具。其基本语法如下: ```sql GRANT privileges (columns)...

    mysql 语法大全

    以下是一些基本的MySQL语法和操作: 1. **数据库管理**: - 显示所有数据库:`SHOW DATABASES;` - 创建数据库:`CREATE DATABASE db;` - 删除数据库:`DROP DATABASE db;` - 选择数据库:`USE db;` 2. **表...

    MYSQL 基础语法大全. 手动整理

    本资料主要涵盖了MySQL的基础语法,包括数据的增删改查、查询条件的使用、事务处理、字符集问题的解决、数据库的导入与导出以及用户权限管理和字符串拼接等核心概念。 1. **增删改查(CRUD)**: - **创建(Create...

    mysql基础语法&存储过程示例.zip

    本资料“mysql基础语法&存储过程示例.zip”聚焦于MySQL的基础语法和存储过程的实践应用,帮助初学者快速掌握MySQL的核心知识。 一、MySQL基础语法 1. 数据库操作:包括创建数据库(CREATE DATABASE)、查看数据库...

    浅谈MySQL中授权(grant)和撤销授权(revoke)用法详解

    总的来说,`GRANT`和`REVOKE`是MySQL中实现用户访问控制的关键命令,它们帮助管理员维护数据库系统的安全性,确保只有授权的用户才能执行特定操作。通过熟练掌握这两个命令,可以更好地管理和保护数据库资源。

    MySQL语法大全

    本文将深入探讨MySQL的语法大全,旨在帮助读者掌握MySQL的基础知识及高级特性,实现高效的数据存储和管理。 一、安装与配置 在开始学习MySQL语法之前,你需要在计算机上安装MySQL。这通常涉及下载安装包,配置...

    MySQL基础语法与练习

    MySQL通过`GRANT`和`REVOKE`命令来管理用户权限,可以控制用户对数据库、表甚至特定列的操作权限。 七、备份与恢复 - `mysqldump`:用于备份数据库,生成SQL脚本。 - `LOAD DATA INFILE`:将数据快速导入到表中。 -...

Global site tag (gtag.js) - Google Analytics