【必知必会的MySQL知识】④DCL语言

时间:2023-05-04 06:26:20 来源: 博客园


(资料图)

目录一、概述二 、授权2.1 语法格式2.2 语法说明2.3 权限类型2.4 权限级别三、 回收权限3.1 语法格式3.2 语法说明3.3 注意事项四 、实践操作一、概述

数据控制语言,用来定义访问权限和安全级别。主要包含包括grantrevoke关键字

grant 授予权限revoke 回收权限
二 、授权2.1 语法格式
GRANT priv_type [(column_list)]  [, priv_type [(column_list)]] ...ON [object_type] priv_levelTO user [IDENTIFIED BY [PASSWORD] "password"][, user[IDENTIFIED BY [PASSWORD] "password"]] ...[WITH with_option [with_option]...]
2.2 语法说明
参数参数说明
priv_type参数表示权限类型
columns_list参数表示权限作用于哪些列上,省略该参数时,表示作用于整个表
object_type参数用于指定权限对象
priv_level 参数用于指定权限级别
user参数表示用户账户;由用户名和主机名构成,格式是“"username"@"hostname"”
IDENTIFIED BY参数用来为用户设置密码
password参数是用户的新密码
WITH 一个或多个with_option参数

with_option参数一共5个选项

with_option参数参数说明
GRANT OPTION被授权的用户可以将这些权限赋予给别的用户
MAX_QUERIES_PER_HOUR count设置每个小时可以允许执行 count 次查询
MAX_UPDATES_PER_HOUR count设置每个小时可以允许执行 count 次更新
MAX_CONNECTIONS_PER_HOUR count设置每小时可以建立 count 个连接
MAX_USER_CONNECTIONS count设置单个用户可以同时具有的 count 个连接
2.3 权限类型

权限类型分类

权限类型说明
数据库权限和一个具体的数据库中的所有表相关。例如,可以在已有的数据库 mytest 中创建新表的权限
表权限和一个具体表中的所有数据相关。例如,可以使用 SELECT 语句查询表 students 的所有数据的权限
列权限和表中的一个具体列相关。例如,可以使用 UPDATE 语句更新表 students 中 name 列的值的权限
用户权限和 MySQL 中所有的数据库相关。例如,可以删除已有的数据库或者创建一个新的数据库的权限

① 授予数据权限时,<权限类型>可以指定为以下值

权限名称对应user表中的字段说明
SELECT Select_priv表示授予用户可以使用 SELECT 语句访问特定数据库中所有表和视图的权限。
INSERTInsert_priv表示授予用户可以使用 INSERT 语句向特定数据库中所有表添加数据行的权限。
DELETEDelete_priv表示授予用户可以使用 DELETE 语句删除特定数据库中所有表的数据行的权限。
UPDATEUpdate_priv表示授予用户可以使用 UPDATE 语句更新特定数据库中所有数据表的值的权限。
REFERENCES References_priv表示授予用户可以创建指向特定的数据库中的表外键的权限。
CREATE Create_priv表示授权用户可以使用 CREATE TABLE 语句在特定数据库中创建新表的权限。
ALTERAlter_priv表示授予用户可以使用 ALTER TABLE 语句修改特定数据库中所有数据表的权限。
SHOW VIEW Show_view_priv表示授予用户可以查看特定数据库中已有视图的视图定义的权限。
CREATE ROUTINECreate_routine_priv表示授予用户可以为特定的数据库创建存储过程和存储函数的权限。
ALTER ROUTINE Alter_routine_priv表示授予用户可以更新和删除数据库中已有的存储过程和存储函数的权限。
INDEX Index_priv表示授予用户可以在特定数据库中的所有数据表上定义和删除索引的权限。
DROPDrop_priv表示授予用户可以删除特定数据库中所有表和视图的权限。
CREATE TEMPORARY TABLESCreate_tmp_table_priv表示授予用户可以在特定数据库中创建临时表的权限。
CREATE VIEWCreate_view_priv表示授予用户可以在特定数据库中创建新的视图的权限。
EXECUTE ROUTINEExecute_priv表示授予用户可以调用特定数据库的存储过程和存储函数的权限。
LOCK TABLESLock_tables_priv表示授予用户可以锁定特定数据库的已有数据表的权限。
ALL 或 ALL PRIVILEGES 或 SUPERSuper_priv表示以上所有权限/超级权限

② 授予权限时,<权限类型>可以指定为以下值:

权限名称对应user表中的字段说明
SELECTSelect_priv授予用户可以使用 SELECT 语句进行访问特定表的权限
INSERTInsert_priv授予用户可以使用 INSERT 语句向一个特定表中添加数据行的权限
DELETEDelete_priv授予用户可以使用 DELETE 语句从一个特定表中删除数据行的权限
DROPDrop_priv授予用户可以删除数据表的权限
UPDATEUpdate_priv授予用户可以使用 UPDATE 语句更新特定数据表的权限
ALTERAlter_priv授予用户可以使用 ALTER TABLE 语句修改数据表的权限
REFERENCESReferences_priv授予用户可以创建一个外键来参照特定数据表的权限
CREATECreate_priv授予用户可以使用特定的名字创建一个数据表的权限
INDEX Index_priv授予用户可以在表上定义索引的权限
ALL 或 ALL PRIVILEGES 或 SUPER Super_priv所有的权限名

③ 授予权限时,<权限类型>可以指定以下值

权限名称对应user表中的字段说明
SELECTSelect_priv授予用户可以使用 SELECT 语句进行访问特定表的权限
INSERTInsert_priv授予用户可以使用 INSERT 语句向一个特定表中添加数据行的权限
UPDATEUpdate_priv授予用户可以使用 UPDATE 语句更新特定数据表的权限

④授予用户权限时,<权限类型> 除了可以指定为授予数据库权限,还可以指定以下值

权限名称说明
CREATE USER表示授予用户可以创建和删除新用户的权限
SHOW DATABASES表示授予用户可以使用 SHOW DATABASES 语句查看所有已有的数据库的定义的权限
2.4 权限级别
权限级别说明
*表示当前数据库中的所有表
*.*表示所有数据库中的所有表
db_name.*表示某个数据库中的所有表,db_name 指定数据库名
db_name.tbl_name表示某个数据库中的某个表或视图,db_name 指定数据库名,tbl_name 指定表名或视图名
db_name.routine_name表示某个数据库中的某个存储过程或函数,routine_name 指定存储过程名或函数名
TO 子句如果权限被授予给一个不存在的用户,MySQL 会自动执行一条 CREATE USER 语句来创建这个用户,但同时必须为该用户设置密码
三、 回收权限3.1 语法格式
REVOKE priv_type [(column_list)][, priv_type [(column_list)]] ...ON [object_type] priv_levelFROM user [, user]...
3.2 语法说明
参数参数说明
priv_type参数表示权限的类型
column_list参数表示权限作用于哪些列上,没有该参数时作用于整个表上
user参数由用户名和主机名构成,格式为“username"@"hostname"”
3.3 注意事项REVOKE 语法和 GRANT 语句的语法格式相似,但具有相反的效果。要使用 REVOKE 语句,必须拥有 MySQL 数据库的全局 CREATE USER 权限或 UPDATE 权限四 、实践操作

① 运维童鞋想要查询所有用户的权限

select * FROM mysql.user;

②运维童鞋想要创建一个新的用户testXiezhr,密码为testXiezhr。并授予test用户所有的数据查询、插入权限

# 创建用户并授权mysql> GRANT SELECT,INSERT ON *.*    ->      TO "testXiezhr"@"localhost"    ->      IDENTIFIED BY "testXiezhr"    ->       WITH GRANT OPTION;Query OK, 0 rows affected, 1 warning (0.01 sec)# 使用 SHOW GRANTS 语句查询用户 testXiezhr的权限mysql> show grants for "testXiezhr"@localhost;+---------------------------------------------------------------------------+| Grants for testXiezhr@localhost                                           |+---------------------------------------------------------------------------+| GRANT SELECT, INSERT ON *.* TO "testXiezhr"@"localhost" WITH GRANT OPTION |+---------------------------------------------------------------------------+1 row in set (0.00 sec)

③ 运维童鞋想要收回testXiezhr用户的插入权限

# 使用revoke关键字收回insert 权限mysql> REVOKE INSERT ON *.* FROM "testXiezhr"@"localhost";Query OK, 0 rows affected (0.00 sec)#使用 SHOW GRANTS 语句查询用户 testXiezhr的权限,我们发现insert 权限没有了mysql> show grants for "testXiezhr"@localhost;+-------------------------------------------------------------------+| Grants for testXiezhr@localhost                                   |+-------------------------------------------------------------------+| GRANT SELECT ON *.* TO "testXiezhr"@"localhost" WITH GRANT OPTION |+-------------------------------------------------------------------+1 row in set (0.00 sec)

标签:

精彩推送

当前速读:数位行业大咖齐聚!“设界·星生”2023高峰设计论坛暨M+设计师俱乐部全球发布会举行

“设界·星生”2023高峰设计论坛暨M+设计师俱乐部全球发布会

来源:2023.04.29

手术室里 九旬老战士享受“特殊”待遇 天天消息

兰州日报社全媒体记者田小东兰州晚报讯“术前唱歌鼓劲,术后鲜花慰问!”4月27日,92岁的抗美援朝老战士...

来源:2023.04.29

年内24家上市公司完成更名 业务发展变化为主因|天天新资讯

本报记者 王丽新 见习记者 陈 潇东方财富Choice数据显示,截至4月28日,年内已有24家上市公司完成名

来源:2023.04.29

【聚看点】南通崇川幸福街道:践行文明新风尚,守护居民“舌尖上的安全”

文明实践,网格先行。为提升辖区文明长效管理水平和网格化治理能力,南通市崇川区幸福街道幸福家苑社区网格

来源:2023.04.29

实时焦点:德肖恩沃森的新交易成为保证资金的潜在改变者

多年来,老牌球员一直在争取获得完全保障的合同。多年来,NFL球队一直在抵制。最后,一个团队屈服了。布朗

来源:2023.04.29

全华班出战的申花在保四最关键的时刻2-0赢球 环球播报

来源:搜狐体育5周前,高居赛区第二的上海申花2-3输给广州富力,当时很多人或许还没有意识到,这场输球险些

来源:2023.04.29

每日速看!五市长江禁渔联合执法签约仪式在南京举行

4月28日,南京市市场监管局联合滁州市、马鞍山市、镇江市、扬州市市场监管局举行长江禁渔联合执法签约仪式

来源:2023.04.29

全面实现不动产统一登记,小产权房“转正”还有多远? 全球微资讯

文|庄志明律师最近我看网上有些人关心起小产权房的“转正”,此源起自然资源部部长王广华近日的一个讲话...

来源:2023.04.28

唐人神(002567.SZ):一季度净亏损3.4亿元 同比亏损扩大-观察

格隆汇4月27日丨唐人神(002567)(002567 SZ)公布第一季度报告,营业收入65 23亿元,同比增长32 93%,净亏损3

来源:2023.04.28

新闻快讯

X 关闭

X 关闭

新闻快讯