首页 > 数据库 >[转]MySQL “grant all”与”grant all privileges”授权语句的差别

[转]MySQL “grant all”与”grant all privileges”授权语句的差别

时间:2024-02-27 09:24:01浏览次数:16  
标签:语句 grant privileges 用户 MySQL 权限

原文地址:MySQL “grant all”与”grant all privileges”的差别|极客笔记

在MySQL中,”grant all”与”grant all privileges”都是用来赋予用户所有权限的语句。然而,在某些情况下,这两种语句的区别是非常明显的。

 
  • “grant all”

“grant all”语句将授权用户执行操作的所有权限,但是不包括”grant”权限,也就是说,该用户将不能授予其他用户任何权限。例如:

grant all on *.* to 'user1'@'localhost';
Mysql

在这个例子中,用户”user1″将被赋予执行任何操作的所有权限,但是该用户将不能授予其他用户任何权限。

  • “grant all privileges”

“grant all privileges”语句与”grant all”类似,将授权用户执行所有操作的所有权限,但是它还包括”grant”权限,也就是说,该用户可以授予其他用户任何权限。例如:

grant all privileges on *.* to 'user2'@'localhost';
Mysql

在这个例子中,用户”user2″将被赋予执行任何操作以及授予其他用户任何权限的所有权限。

示例

下面我们将举一个实际的例子来说明”grant all”与”grant all privileges”之间的差异。

假设我们有一个应用程序,它需要对一个名为”example”的数据库进行读写操作。我们想要为这个应用程序创建一个MySQL用户,赋予它所需的所有权限。以下是使用”grant all”语句的示例:

 
grant all on example.* to 'appuser'@'localhost';
Mysql

这个语句将赋予用户”appuser”在”example”数据库上执行任何操作的权限,但是该用户不会获得任何其他权限,包括授予其他用户权限的权限。

如果我们想要同样为这个应用程序创建一个MySQL用户,并且让它能够授予其他用户权限,我们应该使用”grant all privileges”语句,像这样:

grant all privileges on example.* to 'admin'@'localhost' with grant option;
Mysql

在这个示例中,用户”admin”将被赋予执行任何操作以及授予其他用户任何权限的所有权限。请注意,授予其他用户权限这一操作需要在授权语句中添加”with grant option”关键字。

总结

在MySQL中,”grant all”与”grant all privileges”都是用于授权用户权限的语句。它们之间的区别在于”grant all”不包括”grant”权限,也就是说,该用户将不能授予其他用户任何权限,而”grant all privileges”包括”grant”权限,该用户可以授予其他用户任何权限。根据实际需求,使用不同的授权语句可以实现更为细致的权限管理。

标签:语句,grant,privileges,用户,MySQL,权限
From: https://www.cnblogs.com/dirgo/p/18036148

相关文章

  • Docker安装Mysql
    使用Dockers部署Nacos集群前置条件:已经安装dockerDockerSwarm集群已经初始化添加标签:dockernodeupdate--label-addmysql=masterworkId创建网络dockernetworkcreate-doverlayswarm_net构建私有镜像mysql.ymlversion:"3.8"services:mysql:......
  • mysql-批量修改表的主键id,修改成联合主键
    1.sql脚本一.通过sql脚本,查出所有表的功能,并编写插入修改的联合主键,sqlselect concat('ALTERtable',TABLE_NAME,'DROPPRIMARYKEY',',','ADDPRIMARYKEY(`id`,`org_id`)'';')from information_schema.TABLESwhereTABLE_SC......
  • mysql 定位问题常用sql
    select*,now()frominformation_schema.INNODB_TRX;--查看当前正在被锁定的事务select*,now()frominformation_schema.INNODB_LOCKS;--查看当前正在被锁定的行select*,now()frominformation_schema.INNODB_LOCK_WAITS;--查看当前等待锁的事务SHOWOPENTABLESW......
  • [MYSQL] MYSQL 8解决 Invalid default value for `created_at`(timestamp)
    1问题描述问题背景执行从MYSQL5.7导出,并在MYSQL8.0.33的数据库中执行DDL建表语句时,报Invaliddefaultvaluefor'create_at'...`create_at`timestampNOTNULLDEFAULT'0000-00-0000:00:00'COMMENT'创建时间/createdtime',...2原因分析表面原因:......
  • mysql为啥不用红黑树
    Mysql没有使用红黑树的原因主要是因为红黑树的层级较多,可能会导致大量的磁盘IO操作。红黑树是一种自平衡的二叉查找树,它的特点是根节点为黑色,叶子节点为黑色的空节点,红色节点下的子节点一定为黑色节点。从根节点到叶子节点所有的路径上存在相同数目的黑色节点。红黑树的平衡性保......
  • MySQL——去重复
    MySQL——去重复把查询结果去除重复记录。注意:原表数据不会被修改,只是查询结果去重。使用的关键字为:distinct。语法结构:selectdistinct字段名from表名;distinct不能以这种形式出现:select字段名,distinct字段名from表名;会报错。distinct只能出现在所有字段的最前方......
  • MySQL备份恢复数据--binary-mode is enabled and mysql is run in non-interactive...
    使用mysqldump;MySQL自带的逻辑备份工具。mysqldump[选项]数据库名[表名]>脚本名mysqldump[选项]--数据库名[选项表名]>脚本名mysqldump[选项]--all-databases[选项]>脚本名备份mysqldump-hlocalhost-uwordpress-pwordpress_20200104>c......
  • mysql access denied for root ... mysqld –skip-grant-tables 命令失效 ... Failed
    <!--密码突然登录不上MySQL了,久了也不晓得是不是密码不正确...只能改密码...一年难得碰一次,感觉每次总有莫名其妙的问题--><!--修改方案只找到一个,就是无密码验证开启mysql服务,然后登录,设置新密码--><!--mysql版本不同有些命令无效,大概分高低两版本--><!--低版命令我......
  • 关于Windows上设置MySQL为外部可访问
    改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改"mysql"数据库里的"user"表里的"host"项,从"localhost"改称"%"1.mysql-uroot-pdtsdtsmysql>usemysql;mysql>updateusersethost='%&#......
  • win10搭建mysql5.7环境
    下载mysql5.7下载官网地址https://downloads.mysql.com/archives/community/解压到指定目录我解压到D:\ProgramFiles\mysql-5.7.44创建配置文件my.ini在上述目录中创建my.ini文件,并添加如下配置项#Foradviceonhowtochangesettingspleasesee#http://dev.m......