Правда ли, что аутентификация SQL подходит только для приложений с несколькими ролями? - PullRequest
0 голосов
/ 31 октября 2009

Я полагаю, что аутентификация Windows - это лучшая практика для подключения к базе данных SQL. Я слышу разговоры о приложении пользователя учетной записи ..

Правда ли, что SQL-аутентификация хороша только для приложений с несколькими ролями, а оконная аутентификация хороша только для приложений с одной ролью? Я никогда не слышал, что аутентификация Windows с ролью muitple os хороша только для внутреннего приложения smaill? несколько входов в Windows = несколько подключений = нет пула = плохое масштабирование?

Ответы [ 3 ]

0 голосов
/ 01 ноября 2009

Я не уверен, что вы подразумеваете под одно-и много-ролевым приложением. Ранее я создавал приложения, в которых есть несколько ролей базы данных SQL Server, каждая из которых имеет группу пользователей домена Windows, которой разрешена эта роль. Таким образом, управление пользователями полностью в Active Directory с соответствием 1-1 между группой домена и ролью базы данных.

Обычно мы не управляли безопасностью в самом приложении, за исключением явно декларативного характера при создании базы данных, где каждому объекту был предоставлен доступ с определенными ролями в соответствии с проектом. Как правило, в простом случае мы полагались на роль db_datareader, предоставляемую для общего использования неспецифическим группам пользователей, таким как администраторы баз данных и сети для устранения неполадок, а также составители отчетов или бизнес-аналитики для специальных отчетов. Фактическим пользователям приложения будет предоставлено право выполнять соответствующие SP, чтобы иметь возможность изменять любые данные (таким образом, все создание или изменение данных осуществлялось через SP, и это могли делать только явные члены группы AD ThisAppsUsers). Любые расширенные SP (скажем, слияние или удаление учетных записей) будут доступны только группе AD ThisAppsAdmins. И это было обычно все, что нам нужно для приложений среднего размера. Для более сложной функциональности также можно было запрашивать AD напрямую для пользовательских атрибутов (пользователь является администратором только для этой учетной записи клиента, а для других - просто пользователь)

Этот же метод может использоваться с именами входа SQL Server, но, конечно, отдельные имена входа SQL Server должны быть добавлены к ролям базы данных, а у вас нет богатства AD и вам нужно создать какую-то службу каталогов. в вашу базу данных.

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

0 голосов
/ 16 декабря 2009

Использование опции IntegraSecurity = true для SQL JDBC, включая JDBC auth .dll, должно обеспечить подключение к базе данных без аутентификации ...

0 голосов
/ 31 октября 2009

Проблема с использованием аутентификации Windows для веб-приложения заключается в том, что многие веб-приложения хранят учетные данные своих пользователей в той же базе данных SQL, которая используется для других данных приложения.

Итак, у вас проблема с яйцом и курицей. Вы не можете аутентифицировать пользователя перед подключением к базе данных, и вы не можете подключиться к базе данных без аутентификации пользователя.

Должна быть возможность использовать проверку подлинности Windows, и тогда также будет иметь специфичные для приложения атрибуты пользователя, хранящиеся в базе данных. Но большинству людей это неудобно для администрирования, а также ограничивает переносимость приложения.

Например, если одна из функций приложения позволяет пользователям изменять свой собственный пароль, то процессу, выполняющему ваше веб-приложение, нужна привилегия для изменения пароля Windows, что может означать, что приложение должно работать с правами администратора. ,

Если вы позволяете приложению управлять идентификатором пользователя для контекста приложения, то изменение пароля пользователя является просто операцией SQL, и ваше приложение отвечает за обеспечение безопасности для этого.

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