Я запускаю следующий запрос в SQL Server 2014:
SELECT
dp.class_desc, dp.permission_name, dp.state_desc,
ObjectName = OBJECT_NAME(major_id),
GranteeName = grantee.name, GrantorName = grantor.name
FROM
sys.database_permissions dp
JOIN
sys.database_principals grantee ON dp.grantee_principal_id = grantee.principal_id
JOIN
sys.database_principals grantor ON dp.grantor_principal_id = grantor.principal_id
И я получаю все ожидаемые строки. Я создал тестовую базу данных пользователей и ролей и вижу их.
Когда я запускаю его в powershell:
(invoke-sqlcmd 'select dp.class_desc, dp.permission_name, dp.state_desc,
ObjectName = OBJECT_NAME(major_id), GranteeName = grantee.name, GrantorName = grantor.name
FROM sys.database_permissions dp
JOIN sys.database_principals grantee on dp.grantee_principal_id = grantee.principal_id
JOIN sys.database_principals grantor on dp.grantor_principal_id = grantor.principal_id -ServerInstance Blah\blah)
Я не вижу пользователей / ролей моей тестовой базы данных в выводе. Я использую Windows аутентификацию. Тот же пользователь запускает команду PowerShell и подключается через SSMS. Кроме того, в моем выводе PowerShell я вижу отключенные учетные записи. Я не вижу, когда я запускаю запрос в SSMS.
Есть ли какие-либо предложения о том, как получить из PowerShell те же результаты, что и из SSMS?