1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 数据库授予用户增删改查的权限的语句_MySQL授予权限(Grant语句)

数据库授予用户增删改查的权限的语句_MySQL授予权限(Grant语句)

时间:2019-10-04 14:39:04

相关推荐

数据库授予用户增删改查的权限的语句_MySQL授予权限(Grant语句)

在本教程中,您将学习如何使用MySQL中的GRANT语句向MySQL用户授予权限。

MySQL GRANT语句简介

创建新的用户帐户后,用户没有任何权限。如要向用户帐户授予权限,请使用GRANT语句。

下面说明GRANT语句的语法:

GRANT privilege,[privilege],.. ON privilege_level

TO user [IDENTIFIED BY password]

[REQUIRE tsl_option]

[WITH [GRANT_OPTION | resource_option]];

下面让我们来详细地看看GRANT语句 -

首先,在GRANT关键字之后指定一个或多个特权。如果要授予用户多个权限,则每个权限都将以逗号分隔(见下表中的特权列表)。

接下来,指定确定特权应用级别的privilege_level。MySQL支持全局(*.*),数据库(database.*),表(database.table)和列级别。 如果您使用列权限级别,则必须在每个权限之后使用逗号分隔列的列表。

然后,放置要授予权限的用户。如果用户已经存在,则GRANT语句修改其特权。如不存在,则GRANT语句将创建一个新用户。可选的条件IDENTIFIED BY允许为用户设置新密码。

之后,可指定用户是否必须通过安全连接(如SSL,X059等)连接到数据库服务器。

最后,可选的WITH GRANT OPTION子句允许此用户授予其他用户或从其他用户删除您拥有的权限。此外,可以使用WITH子句来分配MySQL数据库服务器的资源,例如,设置用户每小时可以使用多少个连接或语句。这在MySQL共享托管等共享环境中非常有用。

请注意,要使用GRANT语句,您必须具有GRANT OPTION权限和您授予其它用户的权限。 如果启用了read_only系统变量,则需要具有SUPER权限才能执行GRANT语句授权。

我们来练习一些使用MySQL中的GRANT语句的例子来更好的理解。

MySQL GRANT示例

通常,我们首先使用CREATE USER语句创建新的用户帐户,然后再使用GRANT语句向用户授予权限。

例如,以下CREATE USER语句创建一个新的超级用户帐户。

CREATE USER super@localhost IDENTIFIED BY 'newpasswd';

要查看已分配给SHOW GRANTS语句。

SHOW GRANTS FOR super@localhost;

上面代码执行结果如下 -

mysql> SHOW GRANTS FOR super@localhost;

+-------------------------------------------+

| Grants for super@localhost |

+-------------------------------------------+

| GRANT USAGE ON *.* TO 'super'@'localhost' |

+-------------------------------------------+

1 row in set

要向

GRANT ALL ON *.* TO 'super'@'localhost' WITH GRANT OPTION;

ON *.*子句表示MySQL中的所有数据库和所有对象。WITH GRANT OPTION允许

现在,如果再次执行SHOW GRANTS FOR super@localhost语句,您将看到

SHOW GRANTS FOR super@localhost;

执行上面查询语句,得到以下结果 -

mysql> SHOW GRANTS FOR super@localhost;

+----------------------------------------------------------------------+

| Grants for super@localhost |

+----------------------------------------------------------------------+

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

+----------------------------------------------------------------------+

1 row in set

要创建一个用户:auditor,并所有示例数据库(yiibaidb)中的所有权限,请使用以下语句:

CREATE USER auditor@localhost IDENTIFIED BY 'newpasswd';

GRANT ALL ON yiibaidb.* TO auditor@localhost;

您可以在单个GRANT语句中授予多个权限。 例如,创建一个针对yiibaidb数据库执行SELECT,INSERT和UPDATE语句的权限的用户,如下语句:

CREATE USER rfc IDENTIFIED BY 'mypasswd';

GRANT SELECT, UPDATE, DELETE ON yiibaidb.* TO rfc;

现在,如果您使用rfc用户帐户登录到MySQL服务器并发出以下查询语句:

CREATE TABLE city(

id INT PRIMARY KEY AUTO_INCREMENT,

name VARCHAR(255)

);

MySQL将发出以下错误信息:

ERROR 1142 (42000): CREATE command denied to user 'rfc'@'localhost' for table 'city'

GRANT允许的特权

下表说明了可用于GRANT和REVOKE语句的所有可用权限:

权限

含义

全局

数据库

过程

代理

ALL [PRIVILEGES]

授予除了GRANT OPTION之外的指定访问级别的所有权限

ALTER

允许用户使用ALTER TABLE语句

x

x

x

ALTER ROUTINE

允许用户更改或删除存储程序

x

x

x

CREATE

允许用户创建数据库和表

x

x

x

CREATE ROUTINE

x

x

CREATE TABLESPACE

允许用户创建,更改或删除表空间和日志文件组

x

CREATE TEMPORARY TABLES

允许用户使用CREATE TEMPORARY TABLE创建临时表

x

x

CREATE USER

允许用户使用CREATE USER,DROP USER,RENAME USER和REVOKE ALL PRIVILEGES语句。

x

CREATE VIEW

允许用户创建或修改视图

x

x

x

DELETE

允许用户使用DELETE

x

x

x

DROP

允许用户删除数据库,表和视图

x

x

x

EVENT

能够使用事件计划的事件

x

x

EXECUTE

允许用户执行存储过程/存储函数

x

x

FILE

允许用户读取数据库目录中的任何文件

x

GRANT OPTION

允许用户有权授予或撤销其他帐户的权限

x

x

x

x

x

INDEX

允许用户创建或删除索引

x

x

x

INSERT

允许用户使用INSERT语句

x

x

x

x

LOCK TABLES

允许用户在具有SELECT权限的表上使用LOCK TABLES

x

x

PROCESS

允许用户使用SHOW PROCESSLIST语句查看所有进程

x

PROXY

启用用户代理

REFERENCES

允许用户创建外键

x

x

x

x

RELOAD

允许用户使用FLUSH操作

x

REPLICATION CLIENT

允许用户查询主服务器或从服务器的位置

x

REPLICATION SLAVE

允许用户使用复制从站从主机读取二进制日志事件

x

SELECT

允许用户使用SELECT语句

x

x

x

x

SHOW DATABASES

允许用户显示所有数据库

x

SHOW VIEW

允许用户使用SHOW CREATE VIEW语句

x

x

x

SHUTDOWN

允许用户使用mysqladmin shutdown命令

x

SUPER

允许用户使用其他管理操作,如CHANGE MASTER TO,KILL,PURGE BINARY LOGS,SET GLOBAL和mysqladmin命令

x

TRIGGER

允许用户使用TRIGGER操作

x

x

x

UPDATE

允许用户使用UPDATE语句

x

x

x

x

USAGE

相当于“无权限”

在本教程中,您已经学会了如何使用MySQL的GRANT语句向用户授予权限。

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。