Я собираюсь получить список всех пользователей, включая пользователей Windows и "sa", которые имеют доступ к определенной базе данных в MS SQL Server.
В принципе, я хотел бы, чтобы список выглядел так, как показано в SQL Server Management Studio
(т.е. Список, который отображается при расширении [databse] -> Security -> Users
) одним важным исключением: я не хочу видеть 'dbo'
в списке, Скорее, я хотел бы видеть фактического пользователя, которому принадлежит база данных. Так, например, если "sa" - это 'dbo'
, 'sa'
должен быть включен в список вместо 'dbo'
. Еще одно примечание, которое не должно быть пропущено, в списке SQL Server Management Studio
обычно отображаются пользователи Windows в дополнение к пользователям SQL, и я хотел бы, чтобы эти пользователи также были включены.
До сих пор мне удалось найти следующий запрос:
SELECT * FROM sys.database_principals where (type='S' or type = 'U')
Этот запрос почти прав, но проблема в том, что он не удовлетворяет условию 'dbo'
.
Как я могу изменить этот запрос или использовать другой?