用习惯了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文章
938浏览量
29845 -
MYSQL数据库
+关注
关注
0文章
99浏览量
10310 -
mysql触发器
+关注
关注
0文章
6浏览量
1202
原文标题:为什么mysql8.0不能在grant时创建用户
文章出处:【微信号:aming_linux,微信公众号:阿铭linux】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
热点推荐
在树莓派上安装和使用MySQL
mysql:mysql -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镜像的步骤
配置成功。如果要用远程用Navicat连接mysql:创建honey用户,密码也为honeycreate user'honey'@'%'identified by'honey';查看用户
发表于 10-19 14:55
腾讯云打造MySQL 8.0全新引擎,进一步加速客户产业升级
据介绍,腾讯云数据库 MySQL 8.0的内核可以百分百完全兼容主流MySQL分支。相比官方版本,无论是单机模式、异步模式还是同步模式下, MySQL
MySQL 5.7与MySQL 8.0 性能对比
背景 测试mysql5.7和mysql8.0分别在读写,选定,只写模式下不同并发时的性能(tps,qps) 最早 测试使用版本为mysql5.7.22和mysql8.0.15 sysb
关于MySQL8.0版本选型的小技巧
MySQL 8.0 第一个GA(General Availability)版本(正式、可用于生产的版本)于2018/4/19发布至今已有3年。8.0是一个全新的版本,增加了数百项功能新特性,重构了
mysql8.0默认字符集是什么
MySQL 8.0 默认字符集是 utf8mb4。 MySQL 8.0 是当前最新的开源关系型数据库管理系统,由Oracle公司开发和维护。MySQ
mysql8.0流程控制介绍
,流程就分为三大类: 顺序结构:程序从上往下依次执行 分支结构:程序按条件进行选择执行,从两条或多条路径中选择一条执行 循环结构:程序满足一定条件下,重复执行一组语句针对于MySQL的流程控制语句主要有3类。注意:只能用于
MySQL 8.0性能优化实战指南
作为一名运维工程师,MySQL数据库优化是我们日常工作中最具挑战性的任务之一。MySQL 8.0作为当前主流版本,在性能、安全性和功能上都有了显著提升,但如何充分发挥其潜力,仍需要我们掌握正确的优化策略。
请问mysql8.0不能在grant时创建用户是什么原因?
评论