我将获取所有用户的列表,包括 Windows 用户和“sa”,他们有权访问 MS SQL Server 中的特定数据库。基本上,我希望列表看起来像中显示的内容SQL Server Management Studio
(即展开时显示的列表[databse] -> Security -> Users
),但有一个重要例外:我不想'dbo'
在列表中看到 。相反,我想查看拥有数据库的实际用户。因此,例如,如果 'sa' 是'dbo'
,'sa'
必须包含在列表中而不是'dbo'
. 另一个不容错过的注意事项是,SQL Server Management Studio
除了 SQL 用户之外,列表中通常还显示 Windows 用户,我希望这些用户也包括在内。
到目前为止,我已经能够提出以下查询:
SELECT * FROM sys.database_principals where (type='S' or type = 'U')
这个查询几乎是正确的,但问题是它不满足'dbo'
条件。
如何更改此查询或应该使用另一个查询?