Я собираюсь получить список всех пользователей, включая пользователей 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'
.
Как я могу изменить этот запрос или использовать другой?
Работает с базами данных SQL Azure – Philippe