Я только начал смотреть на систему, которая реализует защиту немного иначе, чем норма.
Они создают нового пользователя SQL для каждого пользователя системы (которых сейчас около 32 КБ).Каждый запрос отправляется через соединение, которое изначально использует учетную запись SA (давайте не будем зацикливаться на этом), затем, после того, как мы узнаем, кто пользователь, каждый запрос EXECUTE AS USER используется.
Теперь, когдаЕсть так много пользователей, создание новых пользователей и переключение имеют заметное снижение производительности, и компания смотрит на улучшение ситуации.
Несколько моментов: - SQL-код является динамическим SQL (не хранимые процедуры) - оригиналИдея заключалась в том, чтобы избавить разработчиков от необходимости беспокоиться о написании SQL, заботящихся о разрешениях, - и позволить другому уровню беспокоиться об этом.
Как можно попытаться улучшить время выполнения запроса и избежать EXECUTE ASКод ПОЛЬЗОВАТЕЛЯ и все еще проверяют безопасность?
Поддерживает ли SQL Server переменные сеанса для хранения учетной записи пользователя?