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

这篇具有很好参考价值的文章主要介绍了【必知必会的MySQL知识】④DCL语言。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录
  • 一、概述
  • 二 、授权
    • 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_level
TO 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 语句访问特定数据库中所有表和视图的权限。
INSERT Insert_priv 表示授予用户可以使用 INSERT 语句向特定数据库中所有表添加数据行的权限。
DELETE Delete_priv 表示授予用户可以使用 DELETE 语句删除特定数据库中所有表的数据行的权限。
UPDATE Update_priv 表示授予用户可以使用 UPDATE 语句更新特定数据库中所有数据表的值的权限。
REFERENCES References_priv 表示授予用户可以创建指向特定的数据库中的表外键的权限。
CREATE Create_priv 表示授权用户可以使用 CREATE TABLE 语句在特定数据库中创建新表的权限。
ALTER Alter_priv 表示授予用户可以使用 ALTER TABLE 语句修改特定数据库中所有数据表的权限。
SHOW VIEW Show_view_priv 表示授予用户可以查看特定数据库中已有视图的视图定义的权限。
CREATE ROUTINE Create_routine_priv 表示授予用户可以为特定的数据库创建存储过程和存储函数的权限。
ALTER ROUTINE Alter_routine_priv 表示授予用户可以更新和删除数据库中已有的存储过程和存储函数的权限。
INDEX Index_priv 表示授予用户可以在特定数据库中的所有数据表上定义和删除索引的权限。
DROP Drop_priv 表示授予用户可以删除特定数据库中所有表和视图的权限。
CREATE TEMPORARY TABLES Create_tmp_table_priv 表示授予用户可以在特定数据库中创建临时表的权限。
CREATE VIEW Create_view_priv 表示授予用户可以在特定数据库中创建新的视图的权限。
EXECUTE ROUTINE Execute_priv 表示授予用户可以调用特定数据库的存储过程和存储函数的权限。
LOCK TABLES Lock_tables_priv 表示授予用户可以锁定特定数据库的已有数据表的权限。
ALL 或 ALL PRIVILEGES 或 SUPER Super_priv 表示以上所有权限/超级权限

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

权限名称 对应user表中的字段 说明
SELECT Select_priv 授予用户可以使用 SELECT 语句进行访问特定表的权限
INSERT Insert_priv 授予用户可以使用 INSERT 语句向一个特定表中添加数据行的权限
DELETE Delete_priv 授予用户可以使用 DELETE 语句从一个特定表中删除数据行的权限
DROP Drop_priv 授予用户可以删除数据表的权限
UPDATE Update_priv 授予用户可以使用 UPDATE 语句更新特定数据表的权限
ALTER Alter_priv 授予用户可以使用 ALTER TABLE 语句修改数据表的权限
REFERENCES References_priv 授予用户可以创建一个外键来参照特定数据表的权限
CREATE Create_priv 授予用户可以使用特定的名字创建一个数据表的权限
INDEX Index_priv 授予用户可以在表上定义索引的权限
ALL 或 ALL PRIVILEGES 或 SUPER Super_priv 所有的权限名

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

权限名称 对应user表中的字段 说明
SELECT Select_priv 授予用户可以使用 SELECT 语句进行访问特定表的权限
INSERT Insert_priv 授予用户可以使用 INSERT 语句向一个特定表中添加数据行的权限
UPDATE Update_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_level
FROM user [, user]...

3.2 语法说明

参数 参数说明
priv_type 参数表示权限的类型
column_list 参数表示权限作用于哪些列上,没有该参数时作用于整个表上
user 参数由用户名和主机名构成,格式为“username'@'hostname'”

3.3 注意事项

  • REVOKE 语法和 GRANT 语句的语法格式相似,但具有相反的效果。
  • 要使用 REVOKE 语句,必须拥有 MySQL 数据库的全局 CREATE USER 权限或 UPDATE 权限

四 、实践操作

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

select * FROM mysql.user;

【必知必会的MySQL知识】④DCL语言
②运维童鞋想要创建一个新的用户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用户的插入权限文章来源地址https://www.toymoban.com/news/detail-432822.html

# 使用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)

到了这里,关于【必知必会的MySQL知识】④DCL语言的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【必知必会的MySQL知识】mysql5.7安装教程

    下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 下载zip免安装版,可以省去很多事 my.ini文件内容如下 以上配置文件说明 basedir--mysql目录 datadir--数据路径 port --端口 skip-grant-tables --刚开始跳过登陆校验 安装服务: 初始化数据库 登陆命令: 最后,我们当然不希望以后写

    2024年02月02日
    浏览(44)
  • 10个必知必会的VSCode实用快捷键

    掌握10个必知必会的VS Code实用快捷键,提高工作效率。 微信搜索关注《Python学研大本营》,加入读者群,分享更多精彩 代码编辑器Visual Studio Code(VS Code)是很多开发者日常使用的IDE,本文将分享一些实用的VS Code快捷键和技巧,可以帮助开发者节省大量时间。 Ctrl+D 能让用户

    2024年04月29日
    浏览(49)
  • 新手运维必知必会的常用技能或工具

    说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具。 我就大概列出这几方面,这样入门就基本没问题了。 linux系统如果是学习可以选用redhat或centos,特别是centos在企业中用得最多,当然还会有其它版本的,但学习者还是以这2个版本学习

    2024年02月07日
    浏览(42)
  • 什么是数字开发?关于数字开放必知必会的内容点

    数据开发的基础概念必知必会 数据开发是指将数据从不同的来源整合、清洗、转换、存储和分析的过程。数据开发的目的是为了让数据更加有用,以便于企业做出更好的决策。在本文中,我们将介绍数据开发的基本概念,包括数据仓库、ETL、数据建模、数据挖掘和数据可视化

    2023年04月24日
    浏览(47)
  • MySql必知必会

    Buffer Pool基本概念 Buffer Pool:缓冲池,简称BP。其作用是用来缓存表数据与索引数据,减少磁盘IO操作,提升效率。 Buffer Pool由 缓存数据页(Page) 和 对缓存数据页进行描述的 控制块 组成, 控制块中存储着对应缓存页的所属的 表空间、数据页的编号、以及对应缓存页在Buffer Poo

    2024年01月22日
    浏览(64)
  • SQL必知必会知识点汇总

    ❤欢迎大家阅读我的文章呀❤ 今天是SQL必知必会的最后一块练习。 希望你们在我的文章当中能有所收获!!! SLogan:利用有限的时间,撸起袖子加油干!   本篇内容主要总结了【SQL必知必会】当中的一些知识点以及我做题过程当中碰到的一些细节问题。虽然这一块的题目

    2023年04月11日
    浏览(49)
  • MySQL必知必会(初级篇)

    数据库 (DataBase,DB),是统一管理的、长期存储在计算机内的、有组织的相关数据的集合。特点是数据见联系密切、冗余度小、独立性高、易扩展,并且可以为各类用户共享。 MySQL :是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的

    2023年04月08日
    浏览(50)
  • 《MySQL 必知必会》课程笔记(三)

    创建和修改数据表,是数据存储过程中的重要⼀环。 我们不仅需要把表创建出来,还需要正确地设置限定条件,这样才能确保数据的一致性和完整性。 同时,表中的数据会随着业务需求的变化而变化,添加和修改相应的字段也是常见的操作。 首先,我们要知道 MySQL 创建表的

    2024年02月03日
    浏览(45)
  • Nacos必知必会:这些知识点你一定要掌握!

    Nacos 是一个开源的服务发现、配置管理和服务治理平台,是阿里巴巴开源的一款产品。 Nacos 可以帮助开发者更好地管理微服务架构中的服务注册、配置和发现等问题,提高系统的可靠性和可维护性。 本文将介绍 Nacos 的必知必会知识点,包括服务注册与发现、配置管理、命名

    2024年02月05日
    浏览(41)
  • MySQL必知必会:MySQL中的Schema与DataBase

    涉及到数据库的模式有很多疑惑,问题经常出现在模式和数据库之间是否有区别,如果有,区别在哪里。 取决于数据库供应商 对schema(模式)产生疑惑的一部分原因是数据库系统倾向于以自己的方式处理模式 (1)MySQL的文档中指出,在物理上,模式与数据库是同义的,所以

    2023年04月27日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包