MySQL8.0 ERROR 1410 (42000): You are not allowed to create a user with GRANT
如果已建用户是:testuser@localhost,你要授权给testuser@%,那肯定不行,必须一样才行。实质问题原因是:授权语法不严谨导致所授权的用户及其所在主机名,要与实际存在的用户及其主机名一致。在mysql上授权指定账号特定数据库表的查询权限,出现下面的报错。所以主机名不一致的需要先修改主机名或者修改授权SQL语句。--更新指定用户主机。--查看用户信息。
文章共347字 · 阅读需要大约2分钟
一键AI生成摘要,助你高效阅读
问答
·
在mysql上授权指定账号特定数据库表的查询权限,出现下面的报错。
mysql> grant select on testuser.* to user6;
ERROR 1410 (42000): You are not allowed to create a user with GRAN
实质问题原因是:授权语法不严谨导致所授权的用户及其所在主机名,要与实际存在的用户及其主机名一致。
如果已建用户是:testuser@localhost,你要授权给testuser@%,那肯定不行,必须一样才行。
所以主机名不一致的需要先修改主机名或者修改授权SQL语句。
-- 查看用户信息
select User,authentication_string,Host from mysql.user;
-- 更新指定用户主机
update mysql.user set host='%' where user='TESTUSER';
正常授权流程如下:
-- 切换数据库
use mysql;
-- 创建一个普通用户
create user 'TESTUSER'@'%' identified by 'PASSWORD';
-- 授权指定数据库和表的select权限
grant select on app.user to 'TESTUSER'@'%';
grant select on app.mail to 'TESTUSER'@'%';
-- 刷新权限
flush privileges;
其他操作
-- 查看用户拥有的权限的情况
SHOW GRANTS FOR 'TESTUSER'@'%';
-- 撤销指定表所有权限
revoke all on app.user from 'TESTUSER'@'%';
更多推荐
已为社区贡献6条内容
所有评论(0)