Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
MySQL. Быстродействие VS Привелегии (explorer) 07/12/2004 - 00:24:37
      Re: MySQL. Быстродействие VS Привелегии (Dinky) 07/12/2004 - 01:21:56
      Re: MySQL. Быстродействие VS Привелегии (Marat_L) 07/12/2004 - 09:42:57
      Re: MySQL. Быстродействие VS Привелегии (explorer) 07/12/2004 - 14:38:44
      Re: MySQL. Быстродействие VS Привелегии (Валентин) 07/12/2004 - 17:17:22
      Re: MySQL. Быстродействие VS Привелегии (Dinky) 08/12/2004 - 02:15:36
      Re: MySQL. Быстродействие VS Привелегии (explorer) 09/12/2004 - 15:44:31
      Re: в таком разе - RTFM (Dinky) 09/12/2004 - 18:55:45
      Re: в таком разе - RTFM (Dinky) 09/12/2004 - 18:58:31
      Re: MySQL. Быстродействие VS Привелегии (explorer) 12/12/2004 - 16:31:09
      Re: MySQL. Быстродействие VS Привелегии (Dinky) 13/12/2004 - 19:10:15
      Re: MySQL. Быстродействие VS Привелегии (explorer) 14/12/2004 - 10:53:19
      Re: MySQL. Быстродействие VS Привелегии (Dinky) 14/12/2004 - 22:16:41
      Re: MySQL. Быстродействие VS Привелегии (explorer) 15/12/2004 - 13:38:31
      Re: MySQL. Быстродействие VS Привелегии (Dinky) 15/12/2004 - 19:16:00

> Original message text:
> From: explorer - 07/12/2004 - 00:24:37
> Subject:MySQL. Быстродействие VS Привелегии
> -----------------
> Прочитал вот здесь:
> http://mysqlserver.narod.ru/rights.html
> "Наличие хотя бы одной записи в таблице tables_priv или columns_priv приведет к тому, что все входящие запросы будут проверяться на соответствие выполняемым операциям. Поскольку количество проверок на соответствие разрешенным привилегиям возрастет в несколько раз, перед применением таких ограничений следует протестировать производительность сервера баз данных с типовой нагрузкой"
>
> Т.е. получается, что если я начинаю управлять привилегиями чуть ниже чем на уровне базы данных вцелом - это начинает существенно "тормозить" систему, т.к. каждый SQL-запрос проходит "проверку"...
>
> Ситуация:
> У меня есть привелегерованный пользователь который select-ит, update-ит, insert-ит и пр. отдельную базу данных постоянно. Для него заданы все привелегии в таблице mysql.db. (Т.е. ему всё разрешено на уровне DB).
> Я хочу создать юзера mysql для того, чтобы внешние пользователи могли просматривать определённые столбцы определённых таблиц в той же БД (через php-скрипты). Эти обращения, в отличие от первых, будут редкими и совсем не "ресурсоёмкими".
>
> Вопрос:
> Если я добавлю в таблицы tables_priv и columns_priv привилегии для моего php-юзера, внесёт ли это дополнительные проверки при запросах основного юзера (у которого полный доступ ко всей БД в таблице mysql.db) и тем самым затормозит ли работу сервера?
>
>


From: explorer - 12/12/2004 - 16:31:09
Subject:MySQL. Быстродействие VS Привелегии
-----------------
Dinky писал:
"блин, писать километровые письма 2 дня энергии хватает, а прочитать одну страницу документации влом, да? :->"

Дмитрий, во-первых, извините, если я Вас чем-то обидел или излишне резко выразился.
Во-вторых, по сути: в своих последних двух сообщениях Вы привели выдержки из доков по mysql. С этими доками я ессно знакомился. НО: в ссылке которую Вы привели написано "If the result allows the requested operation, access is granted. Otherwise, the server successively checks the user's table and column privileges in the tables_priv and columns_priv tables, adds those to the user's privileges, and allows or denies access based on the result."
Это понятно. Если этому верить, то, по идее, для запросов пользователя root, например, не должно наблюдаться _никакого_ снижения производительности... Однако, насколько я понял, речь в этом документе идёт не об описании работы алгоритма проверки привелегий mysql, а приводится описание для пользователя СУБД, для упрощённого понимания того, что происходит.
Поясню подробнее:
Возьмём два алгоритма:
Первый:
if (проверка привелегий в таблице user)
then РАЗРЕШИТЬ
else if (проверка в db и host)
then РАЗРЕШИТЬ
else if (_ресурсоёмкая_ проверка в tables_priv и columns_priv)
then РАЗРЕШИТЬ
else
ЗАПРЕТИТЬ
end if
Второй:
if (проверка user OR проверка db и host OR проверка tables_priv и columns_priv)
then РАЗРЕШИТЬ
else
ЗАПРЕТИТЬ
end if

И первый и второй алгоритм удовлетворяет приведённому Вами описанию, но в первом каждый отдельный запрос не проверяется, а во втором - проверяется.
Читая доки ответ на мой вопрос не найдёшь. Я вижу три варианта найти этот ответ:
1) Спросить у того, кто с этим м.б. уже сталкивался
2) Разбираться в алгоритме и в исходниках самостоятельно
3) Протестить быстродействие на тестовом стенде.
Возможно, как появится время, попробую вариант №3. И тогда отпишусь о результатах. В любом случае, _спасибо_!


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
19061



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |