SQL Server Авторизация / вопрос безопасности - PullRequest
2 голосов
/ 25 января 2010

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

Мой вопрос: как это обеспечить? Как у нас может быть, чтобы SQL Server разрешал только те операторы вставки / обновления / удаления, которые делаются из нашей структуры, а не кого-либо из сотен людей, которые могут быть подключены через SSMS или какой-либо другой инструмент?

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

Большое спасибо.

Ответы [ 3 ]

2 голосов
/ 25 января 2010

Создайте логин SQL для своего приложения и предоставьте ему разрешения для хранимых процедур или базовых таблиц - какими бы ни были ваши потребности.

Не предоставляйте доступ никому другому.

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

1 голос
/ 25 января 2010

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

0 голосов
/ 25 января 2010

Один из способов - использование триггеров и проверка либо app_name, host_name

if app_name() in('SQL Query Analyzer','Microsoft SQL Server Management Studio')
raiserror (.....)
return

или запретить запись / обновление / удаление доступа ко всем именам пользователей, кроме того, которое использует ваше приложение

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