给用户赋予权限GRANT语句

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 【6月更文挑战第20天】给用户赋予权限GRANT语句。

MySQL数据库中的root用户,具有最高的权限,可以创建数据库及数据表,也可以为其他用户指定访问权限;
MySQL数据库使用GRANT命令来进行权限的赋予操作,可以直接用来对帐号进行增加。
GRANT命令语句在执行的时候,如果权限表中不存在目标帐号,则创建帐号;如果已经存在,则执行权限的新增。
语法格式:
GRANT
<权限类型> [ (<列名>)] [,<权限类型> [ (<列名>)] ]
ON <对象> <权限级别> TO <用户>

其中<用户>的格式:
<用户名> [ IDENTIFIED ] BY [ PASSWORD ] <口令>
[ WITH GRANT OPTION]
| MAX_QUERIES_PER_HOUR <次数>
| MAX_UPDATES_PER_HOUR <次数>
| MAX_CONNECTIONS_PER_HOUR <次数>
| MAX_USER_CONNECTIONS <次数>
语法说明如下:
(1)<列名>
可选项。用于指定权限要授予给表中哪些具体的列。
(2)ON 子句
用于指定权限授予的对象和级别,如在ON 关键字后面给出要授予权限的数据库名或表名等。
(3)<权限级别>
用于指定权限的级别。可以授予的权限有如下几组:

列权限: 和表中的一个具体列相关。例如,可以使用 UPDATE 语句更新
students表中student_name 列的值的权限。
表权限: 和一个具体表中的所有数据相关。例如,可以使用 SELECT 语句查
询表 students 的所有数据的权限。
数据库权限:和一个具体的数据库中的所有表相关。例如,可以在已有的数据
库 mytest中创建新表的权限。
用户权限:和MySQL 中所有的数据库相关。例如,可以删除已有的数据库或
者创建一个新的数据库的权限
GRANT 语句中可用于指定权限级别的值有以下几类格式:

:表示当前数据库中的所有表。 .*:表示所有数据库中的所有表。

db_name.*:表示某个数据库中的所有表,db_name 指定数据库名。
db_name.tbl_name:表示某个数据库中的某个表或视图,dbname 指定数据库名,tbl

name 指定表名或视图名。
tbl_name:表示某个表或视图,tbl_name 指定表名或视图名。
db_name.routine_name:表示某个数据库中的某个存储过程或函数,routine_name 指定存储过程名或函数名。
(4)TO 子句
用来设定用户口令,以及指定被赋予权限的用户 user。若在TO 子句中给系统中存在的用户指定口令,则新密码会将原密码覆盖;如果权限被授予给一个不存在的用户,MySQL 会自动执行一条 CREATE USER 语句来创建这个用户,但同时必须为该用户指定口令。
GRANT语句中的<权限类型>的使用说明如下 (仅列出常用部分):

(1)授予数据库 权限时,<权限类型>可以指定为以下值:

SELECT: 授予用户可以使用 SELECT 语句访问特定数据库中所有表和视图的权限。
INSERT: 授予用户可以使用 INSERT 语句向特定数据库中所有表添加数据行的权限。
DELETE: 授予用户可以使用 DELETE 语句删除特定数据库中所有表的数据行的权限。
UPDATE: 授予用户可以使用 UPDATE 语句更新特定数据库中所有数据表的值的权限。
REFERENCES: 授予用户可以创建指向特定的数据库中的表外键的权限。
CREATE: 授权用户可以使用 CREATE TABLE 语句在特定数据库中创建新表的权限。
ALTER: 授予用户可以使用 ALTER TABLE 语句修改特定数据库中所有数据表的权限。
2)授予表 权限时,<权限类型>可以指定为以下值:
SELECT: 授予用户可以使用 SELECT 语句进行访问特定表的权限。
INSERT: 授予用户可以使用 INSERT 语句向一个特定表中添加数据行的权限。
DELETE: 授予用户可以使用 DELETE 语句从一个特定表中删除数据行的权限。
DROP: 授予用户可以删除数据表的权限。
UPDATE: 授予用户可以使用 UPDATE 语句更新特定数据表的权限。
ALTER: 授予用户可以使用 ALTER TABLE 语句修改数据表的权限。
REFERENCES: 授予用户可以创建一个外键来参照特定数据表的权限。
CREATE: 授予用户可以使用特定的名字创建一个数据表的权限。
INDEX: 授予用户可以在表上定义索引的权限。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
SQL 关系型数据库 MySQL
mysql用户权限设置
mysql用户权限设置
405 1
|
存储 域名解析 网络协议
windows server安装域控及原理(小白向)
windows server安装域控及原理(小白向)
718 0
|
12月前
|
存储 Java 测试技术
一文彻底搞懂阿里开源TransmittableThreadLocal的原理和使用
【10月更文挑战第2天】在Java多线程编程中,线程本地变量(ThreadLocal)是一个非常有用的工具,它能够在每个线程中保存一个独立的变量副本,从而避免多线程环境下的数据竞争问题。然而,在使用线程池等高级多线程技术时,ThreadLocal却面临着一些挑战。为了解决这个问题,阿里巴巴开源了TransmittableThreadLocal(TTL),它扩展了ThreadLocal的功能,使其能够在复杂的多线程环境中正确传递值。本文将深入探讨TTL的原理和使用,帮助读者彻底理解这一技术干货。
1713 0
|
9月前
|
SQL 大数据 数据处理
Flink SQL 详解:流批一体处理的强大工具
Flink SQL 是为应对传统数据处理框架中流批分离的问题而诞生的,它融合了SQL的简洁性和Flink的强大流批处理能力,降低了大数据处理门槛。其核心工作原理包括生成逻辑执行计划、查询优化和构建算子树,确保高效执行。Flink SQL 支持过滤、投影、聚合、连接和窗口等常用算子,实现了流批一体处理,极大提高了开发效率和代码复用性。通过统一的API和语法,Flink SQL 能够灵活应对实时和离线数据分析场景,为企业提供强大的数据处理能力。
1654 27
|
XML 数据格式
DTD和XML Schema之间的区别?
【8月更文挑战第22天】
193 0
|
11月前
|
数据采集 DataWorks 监控
‌DataWorks的主要功能‌
‌DataWorks的主要功能‌
871 1
|
存储 前端开发 中间件
『软件工程10』结构化系统分析:数据流图和字典案例分析
该文章通过具体案例分析了在软件工程中如何运用数据流图和数据字典来进行结构化系统分析,帮助明确系统的信息流程和数据定义。
『软件工程10』结构化系统分析:数据流图和字典案例分析
|
开发框架 前端开发 JavaScript
循序渐进VUE+Element 前端应用开发(29)--- 高级查询条件的界面设计
循序渐进VUE+Element 前端应用开发(29)--- 高级查询条件的界面设计
|
存储 JSON 数据处理
数仓学习---数仓开发之DWD层
数仓学习---数仓开发之DWD
1240 6
数仓学习---数仓开发之DWD层
|
SQL 数据库
如何把高版本的sqlserver 还原到低版本的 sqlserver_kaic
如何把高版本的sqlserver 还原到低版本的 sqlserver_kaic