2014-10-25 1 views
3

Я пытаюсь настроить схему базы данных на MariaDB, которая первоначально поступает из PostgreSQL.Как правильно установить права собственности и привилегии в MariaDB (MySQL)?

Что такое правильный синтаксис в MariaDB для:

ALTER DATABASE mydbname OWNER TO someuser 

и аналогичные для предоставления льгот:

GRANT ALL PRIVILEGES ON DATABASE mydbname TO someotheruser 

Обе работы на PostgreSQL и действует SQL-99 синтаксис. MariaDB (интерфейс PHPMyAdmin) дает мне: # 1064 - У вас есть ошибка в синтаксисе SQL;

ответ

6

Часто привилегии не являются частью стандарта SQL, потому что каждая база данных делает это по-своему. MySQL и MariaDB не имеют владельцев баз данных, таких как postgres. У них есть привилегированные системы, позволяющие или запрещающие учетные записи определенным правам. Второй будет выглядеть так:

GRANT ALL PRIVILEGES ON database.table TO 'user'@'host' [IDENTIFIED BY 'password'] 

Если идентификатор не является обязательным. Если вы хотите предоставить доступ ко всем таблицам, как и большинство других, вы можете использовать звездочку. Установка GRANT ALL в конкретной базе данных эффективно предотвращает доступ пользователя к другим объектам схемы. То же самое может быть достигнуто путем создания GRANT USAGE ON ..

+0

Спасибо за подсказку. Знаете ли вы о хорошей документации об этой обработке в MariaDB? –

+0

Насколько я знаю, механизм хранения ничего не делает с разрешениями, пользователями и ролями в MySQL. Это задача уровня управления базой данных. То же самое касается Percona, MariaDB и других производных от MySQL. Это означает, что вы можете просто использовать руководство MySQL. –

1

Вы можете использовать этот грант заявление в MariaDB:

GRANT ALL PRIVILEGES ON mydbname.* TO someotheruser

Пожалуйста найти руководство MariaDB по поводу гранта заявления: https://mariadb.com/kb/en/mariadb/documentation/sql-commands/account-management-sql-commands/grant/

Пожалуйста найти синтаксис формулировки синтаксиса SQL-99: https://mariadb.com/kb/en/sql-99/15-authorizationids/grant-statement/https://mariadb.com/kb/en/sql-99/15-authorizationids/privilege/

MariaDB und MySQL не имеет владельца базы данных, вместо этого привилегии базы данных назначенный с использованием гранта, как показано выше.

 Смежные вопросы

  • Нет связанных вопросов^_^