用于创建mysql.user的存储过程
我正在尝试创建一个存储过程,它将接受两个参数username和password,并创建一个在模式上具有特定授权的用户。这就是我目前拥有的:用于创建mysql.user的存储过程,mysql,sql,stored-procedures,ddl,Mysql,Sql,Stored Procedures,Ddl,我正在尝试创建一个存储过程,它将接受两个参数username和password,并创建一个在模式上具有特定授权的用户。这就是我目前拥有的: CREATE PROCEDURE `create_admin` ( IN userName VARCHAR(60), IN userPass VARCHAR(60)) BEGIN CREATE USER userName@'%'; SET PASSWORD FOR userName@'%' = PASSWORD(userPass); GRANT DELET
CREATE PROCEDURE `create_admin` (
IN userName VARCHAR(60),
IN userPass VARCHAR(60))
BEGIN
CREATE USER userName@'%';
SET PASSWORD FOR userName@'%' = PASSWORD(userPass);
GRANT DELETE,EXECUTE,INSERT,SELECT, UPDATE ON kairos.* TO userName@'%';
SHOW GRANTS FOR userName@'%';
END
然而,密码给了我各种各样的麻烦。无论我做什么,我似乎都无法将变量插入密码字段,无论是使用y语法标识的createuserx还是这个。我缺少什么?请尝试以下过程,通过传递用户名和word作为参数来创建用户: 首先授予您的用户创建用户和执行过程的访问权。”TEST'是创建过程的登录用户名
GRANT CREATE USER TO TEST;
CREATE OR REPLACE PROCEDURE create_admin(
userName IN VARCHAR2,
userPass IN VARCHAR2)
IS
SQLTest VARCHAR2 (32767);
BEGIN
SQLTest := 'CREATE USER "'||userName||'" IDENTIFIED BY "'||userPass||'"';
EXECUTE IMMEDIATE SQLTest;
END create_admin;
/
执行创建用户的过程:
EXEC create_admin('NEWUSER', 'NEWUSER1');
您需要为此使用动态查询