我想为特定用户显示授权,因此我输入了这样的内容。
mysql> show grants for username@localhost;
但通常我只在localhost中使用mysql。如何设置默认主机名,以便我可以像这个表达式一样使用?
mysql> show grants for username;
答案 0 :(得分:2)
你做不到。由于SHOW GRANTS依赖于GRANT语法本身,它将使用由MySQL定义的用户命名规则 - 并且它明确定义了如果您没有为用户指定hostname
部分您的GRANT
声明 - 它将被视为%
而无其他方式:
帐户名称和密码
用户值表示GRANT所在的MySQL帐户 声明适用。适用于向用户授予权限 任意主机,MySQL支持在表单中指定用户值 USER_NAME @ HOST_NAME。如果user_name或host_name值合法,则为 不带引号的标识符,您无需引用它。但是,引号 必须指定包含special的user_name字符串 字符(例如“ - ”)或包含特殊字符的host_name字符串 字符或通配符(例如“%”);例如, 'test-user'@'%.com'。分别引用用户名和主机名。
您可以在主机名中指定通配符。例如, user_name@'%.example.com'适用于任何主机的user_name example.com域和user_name@'192.168.1.%'适用于user_name 对于192.168.1 C类子网中的任何主机。
和:
简单格式 user_name 是user_name @'%'的同义词。
(来自相应的手册页)。要更具体地了解命名规则 - 请参阅此manual page(在定义帐户名称时,您会找到有关未指定的主机名的相同答案)