gpt4 book ai didi

sql-server - 如何获取所有数据库用户的列表

转载 作者:行者123 更新时间:2023-12-01 17:37:16 31 4
gpt4 key购买 nike

我将获取有权访问 MS SQL Server 中特定数据库的所有用户的列表,包括 Windows 用户和“sa”。基本上,我希望该列表看起来像 SQL Server Management Studio 中所示的那样(即展开 [databse] -> Security -> Users 时显示的列表) code>),但有一个重要的异常(exception):我不想在列表中看到 '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 所有者,您应该能够使用:

select suser_sname(owner_sid) as 'Owner', state_desc, *
from sys.databases

获取 SQL 用户列表:

select * from master.sys.server_principals

引用号。 SQL Server Tip: How to find the owner of a database through T-SQL

How do you test for the existence of a user in SQL Server?

关于sql-server - 如何获取所有数据库用户的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18866881/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com