Невозможно создать функции / хранимую процедуру в Azure MySQL

#mysql #azure

#mysql #azure

Вопрос:

Я только что настроил базу данных mysql в Azure, и я использую Navicat для подключения к ней, и все работает нормально. Сейчас я пытаюсь создать некоторые функции и хранимые процедуры, но получаю сообщение об ошибке суперпользователя:

У вас нет привилегии SUPER, и двоичное ведение журнала включено (возможно, вы захотите использовать менее безопасную переменную log_bin_trust_function_creators)> Время: 0,027 с

Вот мой код для одного из них:

 CREATE function `triggertradersazure`.`sf_entity_active_sub`(`p_entity_id` INT) 
returns INT(11) 
DETERMINISTIC 
begin 
  IF EXISTS (SELECT 1 
             FROM   tbl_stripe_customer_link_sub sc 
                    JOIN tbl_stripe_sub_payments ss 
                      ON sc.stripe_customer_id = ss.stripe_customer_id 
                         AND ss.stripe_subscription_id = 
                             sc.stripe_subscription_id 
             WHERE  active = 'Y' 
                    AND entity_id = p_entity_id) THEN 
    RETURN 1; 
  ELSE 
    RETURN 0; 
  end IF; 
end; 
  

Информация о пользователе из mql.user :

 INSERT INTO `mysql`.`user` 
            (`host`, `user`, `password`, `select_priv`, `insert_priv`, `update_priv`, `delete_priv`, `create_priv`, `drop_priv`, `reload_priv`, `shutdown_priv`, `process_priv`, `file_priv`, `grant_priv`, `references_priv`, `index_priv`, `alter_priv`, `show_db_priv`, `super_priv`, `create_tmp_table_priv`, `lock_tables_priv`, `execute_priv`, `repl_slave_priv`, `repl_client_priv`, `create_view_priv`, `show_view_priv`, `create_routine_priv`, `alter_routine_priv`, `create_user_priv`, `event_priv`, `trigger_priv`, `create_tablespace_priv`, `ssl_type`, `ssl_cipher`, `x509_issuer`, `x509_subject`, `max_questions`, `max_updates`, `max_connections`, `max_user_connections`, `plugin`, `authentication_string`, `password_expired`) 
VALUES      ('%', 'triggertraders', '*', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'N', 'Y', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'N', '', '', '', '', 0, 0, 0, 0, 'mysql_native_password', '', 'N'); 
  

У этого пользователя нет суперпользователя, но мне это не нужно, и Azure этого не разрешает?

Не уверен, что с этим делать на данный момент. Моя функция имела

 `CREATE DEFINER = `tiggertraders`@`ip`
  

Я удалил это, поскольку это предназначено для устранения проблемы.

Любая помощь была бы отличной,

Спасибо,

Ответ №1:

Мне пришлось использовать свойства сервера log_bin_trust_function_creators в Azure, чтобы разрешить это — показать ниже:

введите описание изображения здесь