Я запускаю следующий запрос к базе данных:
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
для базы данных.
Может кто-нибудь сказать мне, почему эти запросы не возвращают ожидаемые результаты? И дайте мне знать, не хватает ли какой-либо важной информации. Спасибо!