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

    文章

    829

    浏览量

    26716
  • MYSQL数据库
    +关注

    关注

    0

    文章

    96

    浏览量

    9440
  • mysql触发器
    +关注

    关注

    0

    文章

    6

    浏览量

    1125

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

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

收藏 人收藏

    评论

    相关推荐

    MDK不能在线仿真,看不了寄存器是什么原因

    MDK不能在线仿真---debug,看不了寄存器是什么原因?而且断点都打不了,只有停下来才能看到寄存器变化该怎么解决?
    发表于 05-07 06:39

    STM32F429的discovery不能在线调试,只能下载运行是什么原因

    f429的discovery不能在线调试,只能下载运行,不知什么原因
    发表于 05-14 08:12

    在树莓派上安装和使用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

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

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

    MySQL用户创建流程

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

    安装MySql镜像的步骤

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

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

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

    腾讯云打造MySQL 8.0全新引擎,进一步加速客户产业升级

    据介绍,腾讯云数据库 MySQL 8.0的内核可以百分百完全兼容主流MySQL分支。相比官方版本,无论是单机模式、异步模式还是同步模式下, MySQL
    的头像 发表于 07-09 14:54 2388次阅读

    MySQL 5.7与MySQL 8.0 性能对比

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

    MySql环境一键安装应用程序免费下载

    本文档的主要内容详细介绍的是MySql环境一键安装应用程序免费下载。创建Mysql所需环境支持8.0以上版本,暂无测试过8.0以下版本
    发表于 02-26 15:01 7次下载

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

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

    mysql8.0默认字符集是什么

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

    mysql8.0流程控制介绍

    ,流程就分为三大类:   顺序结构:程序从上往下依次执行    分支结构:程序按条件进行选择执行,从两条或多条路径中选择一条执行    循环结构:程序满足一定条件下,重复执行一组语句针对于MySQL的流程控制语句主要有3类。注意:只能用于
    的头像 发表于 01-13 10:36 768次阅读