Я запускаю следующий запрос к базе данных:
execute as user = 'domain\username'
select * from fn_my_permissions(null, 'DATABASE')
order by subentity_name, permission_name
revert;
Но возникает следующая ошибка:
Cannot execute as the database principal because the principal "dev\spadmin" does not exist, this type of principal cannot be impersonated, or you do not have permission.
Пользователь - это dbo базы данных, и когда я открываю свойства в студии управления, я вижу, что он связан с этим логином. Выполнение EXECUTE AS LOGIN = 'domain\username' возвращает результаты, с другой стороны. И если я явно запускаю EXECUTE AS USER = 'dbo', я получаю результаты. У меня также есть другая база данных, где этот же сценарий возвращает результаты как с EXECUTE AS USER, так и EXECUTE AS LOGIN.
В другом сценарии с другим пользователем я побежал EXECUTE AS LOGIN = 'domain\username', и я не получаю результаты, но я получаю результаты с помощью EXECUTE AS USER = 'domain\username'.
Оба пользователя в этих сценариях связаны с входами, которые являются членами db_owner для базы данных.
Может кто-нибудь сказать мне, почему эти запросы не возвращают ожидаемые результаты? И дайте мне знать, не хватает ли какой-либо важной информации. Спасибо!