Почему я не могу создать эту агрегатную функцию?Привилегия для CREATE AGGREGATE FUNCTION
Насколько я могу сказать, что я предоставил соответствующие права (CREATE ROUTINE
и ALTER ROUTINE
) как на *.*
и на моей базе данных (peacock
):
mysql> SELECT User, Host, Create_priv, Create_routine_priv, Alter_routine_priv FROM mysql.user WHERE user='glpy';
+------+-----------+-------------+---------------------+--------------------+
| User | Host | Create_priv | Create_routine_priv | Alter_routine_priv |
+------+-----------+-------------+---------------------+--------------------+
| glpy | localhost | Y | Y | Y |
+------+-----------+-------------+---------------------+--------------------+
mysql> SELECT User, Host, db, Create_priv, Create_routine_priv, Alter_routine_priv FROM mysql.db WHERE user='glpy';
+------+-----------+---------+-------------+---------------------+--------------------+
| User | Host | db | Create_priv | Create_routine_priv | Alter_routine_priv |
+------+-----------+---------+-------------+---------------------+--------------------+
| glpy | localhost | peacock | N | Y | Y |
+------+-----------+---------+-------------+---------------------+--------------------+
Однако, когда я пытаюсь создать функцию , я получаю Access denied ... to database 'mysql'
:
mysql> use peacock;
mysql> CREATE AGGREGATE FUNCTION coverage RETURNS INT SONAME 'my-library.so';
ERROR 1044 (42000): Access denied for user 'glpy'@'localhost' to database 'mysql'
В частности:
- Зачем нужен доступ к таблице
mysql
для создания агрегатной функции? - Учитывая, что я предоставил привилегии на
*.*
, почему отказ в доступе? - Я также пробовал предоставлять привилегии на
mysql
, но доступ по-прежнему отрицался.
Это звучит абсолютно правильно - просто нужно его протестировать. – jmilloy
Конечно, вам нужно «УДАЛИТЬ», чтобы функция «DROP». Благодарю. – jmilloy