2011-01-03 2 views
0

Я подключения к серверу MySQL через PHP с пользователем со следующими грантами:MySQL. Разве эти привилегии недостаточно для создания таблицы?

GRANT USAGE ON *.* TO 'myuser'@'localhost' IDENTIFIED BY PASSWORD 'password hash' 
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, CREATE ROUTINE ON `accountperfix\_dbname`.* TO 'myuser'@'localhost' 

Тем не менее, простой CREATE TABLE запрос не со следующей ошибкой:

Could not create geoip table : CREATE command denied to user 'myuser'@'localhost' for table 'geoip' 

Не медведь CREATE между DELETE и DROP достаточно для создания таблиц? Какой грант отсутствует?

P.S. У меня нет доступа к PHPMyAdmin или другим инструментам зондирования на этом конкретном хосте.

+0

Разве вы не можете просто установить PHPmyAdmin? – ceejayoz

+0

@ceejayoz - Нет, это не вариант. –

+0

Возможно, это глупый вопрос, но вы выбрали правильную базу данных для выдачи оператора 'CREATE'? –

ответ

0

Я думаю, вы должны пересмотреть свой ON-заявление:

ON `accountperfix\_dbname`.* TO 'myuser'@'localhost' 

Но вы не упомянули имя соответствующей базы данных.

+0

Имя db представлено здесь 'dbname', также нет никакой инструкции' ON', чтобы пересмотреть; фрагмент кода является результатом запроса 'SHOW GRANTS FOR '$ user' @ '$ host'', а не собственного запроса. –

+0

Ну, тогда передумайте имя баз данных, к которым вы хотите предоставить доступ. Соответствует ли фактическое имя базы данных этому шаблону? Это пример из моей базы данных: GRANT USAGE ON *.* TO 'username'@'localhost' IDENTIFIED BY PASSWORD 'hash' GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON 'databasename'.* TO 'username'@'localhost' Weizen

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