在CREATE USER中使用标识符作为密码

时间:2016-05-16 08:18:31

标签: mysql sql

一个相当简单的问题,但除了查询返回错误这一事实外,我无法在MySql文档中找到任何可以执行此操作的内容。

我有一个用于注册用户的存储过程,它有两个用户名和密码参数。

CREATE USER username IDENTIFIED BY PASSWORD passphrase;

我的问题是密码短语是一个意外的标识符(如MySQL Workbench所说) 我打算使用ALTER USER,但我无法改变存储过程中的表格。

1 个答案:

答案 0 :(得分:0)

我设法构建一个字符串,然后在程序上执行它,这样我就可以直接在查询中构建密码短语。

SET @s = CONCAT(CONCAT(CONCAT('CREATE USER ', @username), ' IDENTIFIED BY PASSWORD \''), CONCAT(@passphrase, '\''));
PREPARE stmts FROM @s;
EXECUTE stmts;