【问题标题】:Grant permissions in procedure在过程中授予权限
【发布时间】:2015-05-17 02:00:37
【问题描述】:

我正在尝试创建一个安全的远程 API 来处理数据库。在不必创建自己的服务器守护进程的情况下,我认为最好的方法是使用存储过程。

我唯一的问题是权限。我希望这些程序能够做一些事情,比如让新用户使用密码。我可以授予权限,但INDENTIFIED BY 总是希望TEXT_STRING 跟在它后面,因此不允许使用变量。

在授予权限时如何允许我的程序设置密码?我想避免创建服务器守护进程或手动修改mysql.user

【问题讨论】:

    标签: mysql sql stored-procedures permissions passwords


    【解决方案1】:

    我可以通过准备好的语句来做到这一点。

    DELIMITER //
    
    CREATE PROCEDURE myProc(param VARCHAR(20))
    BEGIN
        SET @cmd = CONCAT('GRANT ... ON ... TO ... IDENTIFIED BY ''', param, ''';');
        PREPARE stmt FROM @cmd;
        EXECUTE stmt;
        DEALLOCATE PREPARE stmt;
        FLUSH PRIVILEGES;
    END//
    
    DELIMITER ;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-24
      • 2015-01-23
      相关资源
      最近更新 更多