Что не так? | MySQL - PullRequest
       60

Что не так? | MySQL

0 голосов
/ 20 марта 2020

Попытка написать сохраненную функцию для проверки подтверждена или нет. Я хочу использовать это в виду.

CREATE 
    ALGORITHM = UNDEFINED 
    DEFINER = `root`@`%` 
    SQL SECURITY DEFINER
VIEW `Admin_Departaments` AS
    SELECT 
        `Departaments`.`Id` AS `Id`,
        `Departaments`.`Name` AS `Name`,
        `Departaments`.`Email` AS `Email`,
        ST_ISEMPTY(`Departaments`.`EmailVerificationToken`) AS `IsVerified`
    FROM
        `Departaments`

После показа ошибок и операторов кода.

ОШИБКА 1227: доступ запрещен; вам нужна (хотя бы одна из) привилегий SUPER для этой операции

SQL Оператор:

CREATE DEFINER=`%`@`%` FUNCTION `IsEmpty`(str tinytext) RETURNS tinyint(1)
BEGIN
IF str = '' THEN
RETURN true;
else Return false;
END IF;
END

ОШИБКА 1418: этой функции нет DETERMINISTI C, NO SQL или READS SQL DATA в его объявлении и двоичное ведение журнала включено (вы можете использовать менее безопасную переменную log_bin_trust_function_creators)

SQL Заявление :

CREATE DEFINER=`root`@`%` FUNCTION `IsEmpty`(str tinytext) RETURNS tinyint(1)
BEGIN
IF str = '' THEN
RETURN true;
else Return false;
END IF;
END

ОШИБКА 1419: У вас нет привилегии SUPER и включена двоичная регистрация (вы можете использовать менее безопасную переменную log_bin_trust_function_creators)

SQL Заявление:

CREATE DEFINER=`root`@`%` FUNCTION `IsEmpty`(str tinytext) RETURNS tinyint(1)
deterministic
BEGIN
IF str = '' THEN
RETURN true;
else Return false;
END IF;
END

Дополнительная информация:
- База данных хранится в Google Cloud Platform
- Root Пользователь - основной пользователь, указанный в Google
- Я уже попытался изменить root привилегии из оболочки gcloud, работающей mysql из sudo, но получил error
- root привилегии все кроме FILE. Роль все кроме DBA. 2

1 Ответ

0 голосов
/ 20 марта 2020

Как упомянуто в документации Облако SQL FAQ

Облако SQL не поддерживает привилегии SUPER

Здесь можно найти жизнеспособное решение настроить экземпляр MySQL на экземпляре Compute Engine . Это позволит вам иметь привилегии SUPER USER для вашего экземпляра и преодолеть эти ошибки.

...