Реализация безопасности через роли SQL Server или группы Windows - PullRequest
0 голосов
/ 25 сентября 2018

Я ищу лучший способ защитить доступ к данным, хранящимся в базе данных SQL Server (доступ к которой осуществляется через хранимых процедур ).

Пользователи компании разделены на 3 объекта со связанными группами безопасности Windows : G_SUBSIDIARY1, G_SUBSIDIARY2 и G_HOLDING.

Каждое приложение связано с Группа безопасности Windows : G_APPLICATION1, G_APPLICATION2, G_APPLICATION3 ...

Эти группы безопасности в основном используются для управления доступом к общим папкам, выделенным для каждого объекта и приложения.

Хранимые процедуры должны фильтровать данные в зависимости от того, кто их запрашивает.
В качестве примера для доступа к данным в таблице APPLICATION1_DATA вы должны быть членом группы G_APPLICATION1.
И в зависимости от вашей сущностивы получите доступ к другому подмножеству данных (дискриминатор - это столбец с сущностью, которой принадлежат данные).

Чтобы применить авторизацию, я думал о том, чтобы полагаться только на группы безопасности Windows ипроверка с * 1Функция 033 *, если текущий пользователь (аутентифицированный с помощью аутентификация Windows ) принадлежит каждому: IS_MEMBER("COMPANY\G_APPLICATION1") и IS_MEMBER("COMPANY\G_SUBSIDIARY1").
Основные преимущества, которые я вижу, состоят в том, что существует только один объект для управления, иесли более поздние пользователи будут добавлены или удалены, это будет прозрачно на стороне базы данных.

Но мне интересно, есть ли какие-либо недостатки в этом методе, и если, наоборот, будут некоторые преимущества использования SQL ServerРоли в дополнение к этим группам безопасности.
Было бы добавлено некоторое обслуживание, чтобы поддерживать их актуальность, но это может стоить того ...

...