Остановка.База данных SQL Server NET app может быть изменена через Access с использованием ODBC?

#.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 от всех, кроме утвержденного сервера приложений. Но если есть бизнес-потребность в том, чтобы люди с доступом могли запускать хранимые процедуры…