![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
Сириус |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 26.11.2005 Репутация: нет Всего: нет |
Здравствуйте.
Я хотел бы узнать, имеется ли возможность скрыть таблицы от списка таблиц в information_schema.tables ? То есть я хочу, чтоб некоторые таблицы выводились при запросе select table_name from information_schema.tables , а некоторые оставались невидимыми. Это возможно? Скажем у меня есть сайт, в нем имеются две папки folder1, folder2, я хочу, чтоб в папке folder1 выводился один список таблиц, (в information_schema.tables) а в папке folder2 - другой список таблиц, Вообщем, имеется ли возможность такого контроля ? Мне просто нужно скрыть имена и данные некоторых таблиц (в таблицах tables, columns, ..), даже в случае, если человек будет иметь доступ к базе через sql иньекции к примеру, но я не хочу запрещать доступ к information_schema вообще, я просто хочу скрыть некоторые таблицы. |
|||
|
||||
Gwire |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 216 Регистрация: 7.8.2007 Где: Николаев Репутация: 1 Всего: 4 |
То есть ты хочешь, чтобы
в таблице TABLE_PRIVILEGES появились записи типа:
![]() Другой вопрос Какими правами обладает этот человек? Если этот человек "GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY '***'" то исли он захочет посмотреть - он посмотрит. Вплоть до удаления этих установок. А если он "GRANT ALL PRIVILEGES ON other_schema.* TO 'user'@'%' IDENTIFIED BY '***'" то он будет видеть только "information_schema" и "other_schema". Драйвер MySQL не будет выбирать для него в "TABLES" или "COLUMNS" не разрешенные схемы. |
|||
|
||||
Сириус |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 26.11.2005 Репутация: нет Всего: нет |
У нас есть таблица information_schema.tables
Если сделать запрос вида SELECT table_name FROM information_schema.tables то мы получим список всех существующих таблиц из всех баз. Так вот, мой вопрос очень простой, как можно сделать так, чтобы некоторые таблицы в этом списке не появлялись? То есть, если запрос выдает SELECT table_name FROM information_schema.tables результат: table1 table2 table3 table4 table5 table6 --------- И скажем я хочу скрыть таблицу table2, чтоб если кто-то извне, найдя какую-то багу в моем сайте, выполнит SQL иньекцию с запросом SELECT table_name FROM information_schema.tables чтоб результат ему выдался такой table1 table3 table4 table5 table6 --------- То есть, как можете заметить, таблицы table2 нет в списке. Так вот, это возможно, или нет? |
|||
|
||||
Gwire |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 216 Регистрация: 7.8.2007 Где: Николаев Репутация: 1 Всего: 4 |
Исли ты хочешь скрыть свою базу - убери права у всех пользователей на твою базу.
Конечно эта затея очень стрёмная. А если желаемый объект - таблица... ![]() Скорее всего такой функции не имеется в MySQL. ![]() |
|||
|
||||
zav74 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 113 Регистрация: 19.7.2006 Репутация: нет Всего: нет |
Если глобально скрыть все права, то можно устанавливать права на каждую из таблиц. У меня есть разграничения по базам-то есть в information_schema база появляется только в том случае, если у пользователя есть какие-то привелегии на нее. Думаю, с таблицами тоже самое.
http://www.mysql.ru/docs/man/Privileges.html |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |