4

我想显示特定用户的授权,所以我这样输入。

mysql> show grants for username@localhost;

但通常我只在 localhost 中使用 mysql。如何设置默认主机名以便我可以像这个表达式一样使用?

mysql> show grants for username;
4

1 回答 1

2

你不能这样做。由于SHOW GRANTS依赖于GRANT语法本身,它将使用 MySQL 定义的用户命名规则 - 并且它明确定义如果您没有hostname在语句中为用户指定部分GRANT- 它将被视为%并且没有其他方式:

帐户名和密码

user 值表示GRANT 语句适用的 MySQL 帐户。为了适应从任意主机授予用户权限,MySQL 支持以 user_name@host_name 的形式指定用户值。如果 user_name 或 host_name 值作为不带引号的标识符是合法的,则无需引用它。但是,如果指定包含特殊字符(如“-”)的 user_name 字符串,或包含特殊字符或通配符(如“%”)的 host_name 字符串,则需要使用引号;例如,'test-user'@'%.com'。分别引用用户名和主机名。

您可以在主机名中指定通配符。例如,user_name@'%.example.com' 适用于 example.com 域中任何主机的 user_name,而 user_name@'192.168.1.%' 适用于 192.168.1 C 类子网中任何主机的 user_name。

和:

简单形式user_name是 user_name@'%' 的同义词。

(来自相应的手册页)。要更具体地了解命名规则 - 请参阅此手册页(在定义帐户名时,您会找到关于未指定主机名的相同答案)

于 2013-09-10T12:27:31.010 回答