【发布时间】:2013-02-12 18:56:16
【问题描述】:
我在 MySql 中同时使用 GRANT 和变量时遇到了一些问题。
SET @username := 'user123', @pass := 'pass123';
GRANT USAGE ON *.* TO @username@'%' IDENTIFIED BY @pass;
GRANT INSERT (header1, header2, headern) ON `data` TO @username@'%';
GRANT SELECT (header1, header2) ON `data2` TO @username@'%';
我想在脚本开始时将用户名和密码放入变量中,然后在 GRANT 中使用它们
所以不要这样:
GRANT USAGE ON *.* TO 'user123'@'%' IDENTIFIED BY 'pass123';
我想用这样的东西:
GRANT USAGE ON *.* TO @username@'%' IDENTIFIED BY pass;
如果有人可以向我展示正确的陈述,我将不胜感激。 提前谢谢你!
【问题讨论】:
-
不应该是
IDENTIFIED BY @pass,你错过了@ -
谢谢,我更正了,但这并不能解决主要问题。 :(
-
变量只能在 SQL 允许表达式的地方使用。 GRANT 语句中没有表达式。您也许可以使用动态 SQL 来做到这一点。