день добрый.
Скачал phpmyadmin с офф, сайта. Захожу через веб, логинусь от рута, все работает.
Есть задача создать пользователей, у которых будет доступ только к своей базе, в которой они могут делать что угодно. Например: для пользователя user1, доступна база user1 и он может создавать в ней новые базы с префиксом user1_xxx и их уже удалять и делать все что угодно. Соседние базы данных он не видит, и свою, корневую базу user1, удалить не может.
Сейчас стоит centos 5.5. Когда создаю юзера, и ставлю хотя бы одну из галок в поле (Глобальные привилегии (Отметить все / Снять выделение) он начинает видеть все базы данных. Если там галку не ставить, он видит только свою, но создать новые базы данных со своим префиксом не может.
В убунту ставил пхпмайадмин через apt-get install, затем создавал через phpmyadmin пользоватлей и все работает при тех же действиях.
В чем затык и/или где почитать?
Как временное решение, можно для каждого юзера использовать свой, отдельный phpmyadmin, настроенный показывать только одну, конкретную базу данных.
один phpmyadmin для всех
Модераторы: SLEDopit, Модераторы разделов
-
BigBrother
- Сообщения: 436
- Статус: ¯\_(ツ)_/¯
- ОС: linux based
-
Poor Fred
- Сообщения: 1575
- Статус: Pygoscelis papua
- ОС: Gentoo Linux, FreeBSD
Re: один phpmyadmin для всех
BigBrother писал(а): ↑03.11.2010 16:12Когда создаю юзера, и ставлю хотя бы одну из галок в поле (Глобальные привилегии (Отметить все / Снять выделение) он начинает видеть все базы данных. Если там галку не ставить, он видит только свою, но создать новые базы данных со своим префиксом не может.
Так тебе что нужно? Чтобы пользователь создавал базы или таблицы только в свое базе? Если первое, то нужно дать новому пользователю глобальну привилегию CREATE. А если второе - создаешь пользователя и ставишь галочку "Создать для пользователя новую базу данных и предоставить на нее полные привилегии" (ну как-то так).
Убить всех человеков!
-
BigBrother
- Сообщения: 436
- Статус: ¯\_(ツ)_/¯
- ОС: linux based
Re: один phpmyadmin для всех
1ое надо. Чтобы он мог создавать базы, и эти базы видел только этот пользователь
BigBrother писал(а): ↑03.11.2010 16:12Когда создаю юзера, и ставлю хотя бы одну из галок в поле (Глобальные привилегии (Отметить все / Снять выделение) он начинает видеть все базы данных.
CREATE относится как раз к этому полю! Я ставлю галку, и видно все базы...
-
SLEDopit
- Модератор
- Сообщения: 4824
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: один phpmyadmin для всех
ставьте пользователю user на базы user\_% права на SELECT/CREATE/DROP/etc. Тогда пользователь сможет смотреть/создавать/удалять/etc базы только со своим префиксом, а остальные будут лишены такой возможности.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
-
BigBrother
- Сообщения: 436
- Статус: ¯\_(ツ)_/¯
- ОС: linux based
Re: один phpmyadmin для всех
Спасибо, помогло "Предоставить полные привилегии на базы данных подпадающие под шаблон (имя пользователя\_%)".
Вопрос теперь такой: как разрешить пользователю удалять свои базы? Он может делать все, кроме удаления базы данных.
DROP из глобальных привилегий не помогает, да и к тому же, как я уже писал выше, юзер начинает видеть соседние базы.
Вопрос теперь такой: как разрешить пользователю удалять свои базы? Он может делать все, кроме удаления базы данных.
DROP из глобальных привилегий не помогает, да и к тому же, как я уже писал выше, юзер начинает видеть соседние базы.
-
SLEDopit
- Модератор
- Сообщения: 4824
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: один phpmyadmin для всех
Код: Выделить всё
$ mysql -u test -ppassword -e "SHOW DATABASES;"
Database
information_schema
test_cool
test_main
$ mysql -u test -ppassword -e "CREATE DATABASE test_test;"
$ mysql -u test -ppassword -e "SHOW DATABASES;"
Database
information_schema
test_cool
test_main
test_test
$ mysql -u test -ppassword -e "DROP DATABASE test_test;"
$ mysql -u test -ppassword -e "SHOW DATABASES;"
Database
information_schema
test_cool
test_main
$ mysql -u serg -pPa$$w0rd -e "SHOW DATABASES;"
Database
information_schema
serg_main
$ mysql -u test -ppassword -e "SHOW GRANTS;"
Grants for test@localhost
GRANT USAGE ON *.* TO 'test'@'localhost' IDENTIFIED BY PASSWORD '---'
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `test\\_%`.* TO 'test'@'localhost'UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
-
BigBrother
- Сообщения: 436
- Статус: ¯\_(ツ)_/¯
- ОС: linux based
Re: один phpmyadmin для всех
Через консоль у меня тоже работает удаление баз данных, которые создал тестовый юзер.
А вот phpmyadmin скрыл вкладку "удалить базу данных", а если через его интерфейс ввода команда, он говорит что "команда drop database (удалить базу данных) отключена".
А вот phpmyadmin скрыл вкладку "удалить базу данных", а если через его интерфейс ввода команда, он говорит что "команда drop database (удалить базу данных) отключена".
-
BigBrother
- Сообщения: 436
- Статус: ¯\_(ツ)_/¯
- ОС: linux based
Re: один phpmyadmin для всех
вопрос решен.
в папке phpmyadmin/libraries/config.default.php есть опция $cfg['AllowUserDropDatabase'] = false
ставим true, и простые смертные смогу удалять свои базы данных (появляется закладка "удалить")

в папке phpmyadmin/libraries/config.default.php есть опция $cfg['AllowUserDropDatabase'] = false
ставим true, и простые смертные смогу удалять свои базы данных (появляется закладка "удалить")