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