gpt4 book ai didi

mysql - 创建一个用户并且不授予任何权限

转载 作者:可可西里 更新时间:2023-11-01 07:37:52 26 4
gpt4 key购买 nike

有区别吗

grant usage on databasename.* to 'username'@'localhost' identified by 'password'

grant usage on *.* to 'username'@'localhost' identified by 'password'

create user 'username'@'localhost' identified by 'password'

假设用户不存在?我的理解是,其中每一个都会创建一个具有密码的用户,并且不会向该用户授予任何特权。

如果用户确实已经存在,那么我预计会有一些差异:

  • grant 语句会将密码更改为“password”
  • create user 语句将因错误而失败

最佳答案

所有这些语句都做同样的事情——它们创建没有任何特权的新用户。首先和第二个使用 GRANT 语句执行此操作,其中 USAGE 表示 - 无特权。

但是GRANT+USAGE和CREATE USER语句是有区别的:

grant usage on *.* to 'username1'@'localhost'; -- when password is not specified

在 NO_AUTO_CREATE_USER sql 模式的情况下会抛出错误。

来自引用资料 - NO_AUTO_CREATE_USER 防止 GRANT 自动创建新用户,除非还指定了非空密码。

当用户存在时,您对 GRANT 和 CREATE USER 语句的看法是正确的; CREATE USER 会抛出一个错误,但在这种情况下,如果你想更改密码,你可以使用 SET PASSWORD声明,例如-

SET PASSWORD FOR 'username'@'localhost' = PASSWORD('new password');

关于mysql - 创建一个用户并且不授予任何权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8491377/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com