Должны ли пользователи приложения быть пользователями базы данных? - PullRequest
20 голосов
/ 04 декабря 2008

Моя предыдущая работа была связана с обслуживанием и программированием очень большой базы данных с огромными объемами данных. Пользователи просматривали эти данные в основном через веб-интерфейс интрасети. Вместо того, чтобы иметь таблицу учетных записей пользователей, каждая учетная запись пользователя была настоящей первоклассной учетной записью в СУБД, которая позволяла им соединяться с собственными инструментами запросов и т. Д., А также позволяла нам контролировать доступ через саму СУБД. использования нашей собственной логики приложения.

Это хорошая установка, если вы не находитесь в публичной интрасети и имеете дело с потенциально миллионами (потенциально злонамеренных) пользователей или чем-то еще? Или всегда лучше определить свои собственные средства обработки учетных записей пользователей, свои собственные разрешения, собственную логику безопасности приложений и раздавать только учетные записи СУБД опытным пользователям с особыми потребностями?

Ответы [ 12 ]

0 голосов
/ 08 декабря 2008

Думаю, стоит подчеркнуть, что затронули другие ответы:

База данных может определять ограничения только на основе данных. Т.е. ограничить выбор / вставку / обновление / удаление определенных таблиц или столбцов. Я уверен, что некоторые базы данных могут делать более умные вещи, но они никогда не смогут реализовать ограничения, основанные на бизнес-правилах, как приложение. Что если определенному пользователю разрешено обновлять столбец только до определенных значений (скажем, <1000) или только увеличивать цены, или изменять один из двух столбцов, но не оба? </p>

Я бы сказал, если вы не уверены, что вам никогда не понадобится ничего, кроме детализации таблицы / столбца, это само по себе достаточно причины.

0 голосов
/ 04 декабря 2008

Это зависит (как и большинство вещей).

Наличие нескольких пользователей базы данных сводит на нет пулы соединений, поскольку большинство библиотек обрабатывают пулы на основе строк соединений и учетных записей пользователей.

С другой стороны, это, вероятно, более безопасное решение, чем все, что вы или я сделаем с нуля. Это оставляет безопасность до ОС и сервера базы данных, которым я доверяю гораздо больше, чем себе. Однако это только в том случае, если вы попытаетесь правильно настроить разрешения для базы данных. Если вы используете группу пользователей OS / db с одинаковыми разрешениями, это не сильно поможет. Вы все еще получите контрольный журнал, но это все.

Все это говорит о том, что я не знаю, как мне было бы удобно позволить обычным пользователям подключаться напрямую к базе данных с помощью своих собственных инструментов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...