#.net #sql-server #ms-access #odbc
#.net #sql-сервер #ms-access #odbc
Вопрос:
У нас есть приложение .NET 2.0 winforms, которое подключается к базе данных SQL Server 2005 с использованием аутентификации Windows. Все модификации базы данных выполняются с использованием хранимых процедур, которые вызываются из приложения. Это работает нормально, и пользователям разрешается делать только то, что разрешает их роль.
Однако нам пришло в голову, что любой пользователь, имеющий разрешение на использование приложения, теоретически может запустить MS Access и подключиться к базе данных с помощью ODBC и изменить любую запись в базе данных, которую он пожелает.
Мы создали группу безопасности в Active Directory, сделали это логином на SQL Server, а затем сделали этого пользователя в базе данных с правильными правами, чтобы иметь возможность использовать приложение. Другие пользователи домена заблокированы с помощью db_denydatareader и db_denydatawriter.
Как нам заблокировать это, чтобы изменения через Access и т.д. Были невозможны, В то время как приложение по-прежнему корректно функционирует из настольного приложения .NET?
Ответ №1:
SQL server позволяет назначать разрешения на выполнение отдельным хранимым процедурам. Если все разрешенные обновления выполняются через ваши хранимые процедуры, добавьте к ним разрешения на выполнение и удалите права на запись данных.
Комментарии:
1. Значит, все в порядке с использованием Access для выполнения хранимых процедур?
2. Я бы лично использовал брандмауэр для блокировки SQL Server от всех, кроме утвержденного сервера приложений. Но если есть бизнес-потребность в том, чтобы люди с доступом могли запускать хранимые процедуры…