0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

请问mysql8.0不能在grant时创建用户是什么原因?

阿铭linux 来源:阿铭linux 2023-08-11 10:16 次阅读

用习惯了MySQL5.7,当在MySQL8.0里创建用户时,习惯性直接敲GRANT指令,结果报错了:

mysql> grant all on *.* to 'user3'@'%' identified by '123456';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by '123456'' at line 1

这是因为在MySQL8版本之前,使用GRANT语句通常可以同时创建用户并授予其权限。然而,在MySQL8版本中,引入了一些安全性改进和更严格的权限管理,导致了一些变化。

在MySQL8中,CREATE USER和GRANT语句被分开处理,这是为了提高安全性并允许更精细的权限管理。这个变化的主要原因在于:

分离权限管理: 在 MySQL 8 中,用户的创建和权限授予被视为两个不同的操作,这使得权限管理更加模块化和灵活。这样可以更精确地指定用户的创建和授权权限,避免了不必要的权限赋予。

安全性提升: 分离用户创建和权限授予操作可以减少潜在的安全风险。通过严格控制谁可以创建用户以及谁可以授予权限,可以降低不当操作和滥用权限的风险。

在MySQL8版本中,如果你想创建用户并授予其权限,需要按照以下步骤进行: 1)先CREATE USER:

CREATEUSER'username'@'localhost'IDENTIFIEDBY'password';

2)再GRANT权限:

GRANTSELECT,INSERTONdatabase.*TO'username'@'localhost';
通过这种分离的方式,你可以更好地控制用户的创建和权限分配,以及确保数据库的安全性。

请注意,具体的语法和权限名称可能会因你的需求和环境而有所不同,上述示例仅供参考。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • MySQL
    +关注

    关注

    1

    文章

    775

    浏览量

    26004
  • MYSQL数据库
    +关注

    关注

    0

    文章

    95

    浏览量

    9277
  • mysql触发器
    +关注

    关注

    0

    文章

    6

    浏览量

    1077

原文标题:为什么mysql8.0不能在grant时创建用户

文章出处:【微信号:aming_linux,微信公众号:阿铭linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    在树莓派上安装和使用MySQL

    mysqlmysql -u root -p登录成功后如果需要开启mysql远程连接,运行如下命令,给root用户添加远程访问权限mysql
    发表于 01-13 17:55

    树莓派MYSQL安装【附离线安装mysql

    命令,创建用户用来远程连接GRANT ALL PRIVILEGES ON *.* TO 'user_1'@'%' IDENTIFIED BY'2017123456' WITH GRANT
    发表于 03-03 12:14

    MySQL8.0 新特性:Partial Update of LOB Column

    摘要: MySQL8.0对json进行了比较完善的支持, 我们知道json具有比较特殊的存储格式,通常存在多个key value键值对,对于类似更新操作通常不会更新整个json列,而是某些键值
    发表于 06-11 20:23

    使用mysql出现Access denied for user 'root'@'localhost' (us,请问如何解决?

    : YES) 其解决方法如下: #service mysql stop #mysqld_safe --user=mysql --skip-grant-tables --skip-networking&
    发表于 07-03 03:07

    Linux环境下oracle创建和删除表空间及用户

    maxsize 2048m extent management local; --//创建用户并指定表空间 用户名和密码均为"test" create user test
    发表于 07-05 07:12

    请问ARM是什么原因不能烧写程序?

    请问ARM是什么原因不能烧写程序现象如附近图所示,用jinkCommandercheck如下图示:
    发表于 08-30 13:14

    MySQL用户创建流程

    MySQL创建用户与授权
    发表于 10-30 09:12

    AD变换后的值不能在串口助手上输出是什么原因

    原子哥,想在串口助手上同时输入和输出,输入PWM的空占比改变波形后,通过串口再输出一些量,现在不知道为什么串口只能输入空占比的值,AD变换后的值不能在串口助手上输出,这是什么原因呢?
    发表于 08-16 23:08

    安装MySql镜像的步骤

    配置成功。如果要用远程用Navicat连接mysql创建honey用户,密码也为honeycreate user'honey'@'%'identified by'honey';查看用户
    发表于 10-19 14:55

    你知道MySQL用户有关命令都有哪些吗

    进入修改msyql密码创建用户查询用户删除用户GRANT语句授权用户登录限定IP地址 192.1
    发表于 11-03 14:31

    mysql8.0中的无锁重做日志源码介绍

    的性能, 所以在InnoDB 8.0 改成了无锁实现这个是官方的介绍:https://mysqlserverteam.com/mysql-8-0-new-lock-free-scalable-wal-design
    的头像 发表于 02-17 10:52 2688次阅读
    <b class='flag-5'>mysql8.0</b>中的无锁重做日志源码介绍

    MySQL 5.7与MySQL 8.0 性能对比

    背景 测试mysql5.7和mysql8.0分别在读写,选定,只写模式下不同并发时的性能(tps,qps) 最早 测试使用版本为mysql5.7.22和mysql8.0.15 sysb
    的头像 发表于 11-03 09:26 1.4w次阅读
    <b class='flag-5'>MySQL</b> 5.7与<b class='flag-5'>MySQL</b> <b class='flag-5'>8.0</b> 性能对比

    什么原因铜芯网线和铝芯网线不能合体

    网线的线芯一般都是使用纯铜的比较多,当然,也有使用铝芯和铁芯的,也有混合使用的,但是却没有用网线的铜芯和铝芯一起使用的,就是迫不得已要连接的话,也是需要使用铜铝过度线。那什么原因铜芯网线和铝芯网线
    发表于 10-14 09:36 504次阅读

    关于MySQL8.0版本选型的小技巧

    MySQL 8.0 第一个GA(General Availability)版本(正式、可用于生产的版本)于2018/4/19发布至今已有3年。8.0是一个全新的版本,增加了数百项功能新特性,重构
    的头像 发表于 03-29 13:45 818次阅读
    关于<b class='flag-5'>MySQL8.0</b>版本选型的小技巧

    mysql8.0默认字符集是什么

    MySQL 8.0 默认字符集是 utf8mb4。 MySQL 8.0 是当前最新的开源关系型数据库管理系统,由Oracle公司开发和维护。MySQ
    的头像 发表于 11-16 14:48 1100次阅读