Как отлаживать код, использующий привязку к текущему пользователю
В реляционной базе данных нельзя назначать права на строки. Поэтому, для защиты отдельных строк часто используют представление (VIEW) с привязкой к идентификатору текущего пользователя. Это, пожалуй, самый распространённый, но далеко не единственный сценарий использования в коде обращений к текущему контексту безопасности.
Как отлаживать такой код? Можно открыть несколько соединений с сервером от имени разных пользователей и смотреть на результаты одного и того же запроса в разных окнах. Но если это приходится делать по многу раз, переключение между соединениями начинает утомлять и отвлекать.
Альтернативный вариант — создайте для пользователя свой собственный связанный сервер (Linked Server), который ссылается сам на себя. Вот так:
И в настройках этого связанного сервера укажите контекст безопасности, в котором хотите провести отладку:
Теперь можно смотреть на данные глазами разных пользователей через одно подключение и даже из одного окна:
Описанный приём — не единственный. Но он самый простой и не требует вмешательства в саму отлаживаемую базу данных.
0 комментариев