【发布时间】:2013-09-18 08:04:59
【问题描述】:
我将获取所有用户的列表,包括 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' 条件。
如何更改此查询,还是应该使用另一个查询?
【问题讨论】:
标签: sql-server