代码之家  ›  专栏  ›  技术社区  ›  cypher

MySQL CREATE函数在共享web服务器上失败

  •  1
  • cypher  · 技术社区  · 14 年前

    我有以下功能。当我尝试在Web服务器上创建它时,它失败了

    您没有超级权限,二进制日志记录已启用(您 可以 希望使用不太安全的log\u bin\u trust\u function\u creators变量)

    CREATE FUNCTION `has_action_access`(in_role VARCHAR(255), in_request VARCHAR(255), in_action VARCHAR(255)) RETURNS tinyint(1)
        READS SQL DATA
        DETERMINISTIC
    BEGIN
    
        DECLARE current_role VARCHAR(255);  
        DECLARE found, cont TINYINT(1) DEFAULT 0;
        SET current_role = in_role;
    
        findattempt: REPEAT
            SELECT COUNT(*) FROM cyp_action_access WHERE request = in_request AND action = in_action AND role = current_role INTO found;
    
            IF found = 0 THEN
                SELECT COUNT(*) FROM cyp_roles WHERE name = current_role INTO cont;
                IF cont = 1 THEN
                    SELECT inherits FROM cyp_roles WHERE name = current_role INTO current_role;
                    END IF;
                END IF;
        UNTIL (cont = 0 OR found > 0) END REPEAT;
        RETURN found;
    END;
    
    • 5.0.90-log .
    1 回复  |  直到 14 年前
        1
  •  2
  •   Marco Ceppi    14 年前

    推荐文章