在 C# 中查找所有 SQL Server 数据库用户
Posted
技术标签:
【中文标题】在 C# 中查找所有 SQL Server 数据库用户【英文标题】:Find all SQL Server database users in C# 【发布时间】:2018-07-24 08:39:19 【问题描述】:要查找我目前正在使用以下代码的所有数据库用户/所有者
m_server
的类型为Microsoft.SqlServer.Management.Smo.Server
:
var databases = m_server.Databases;
var result = new List<string>();
foreach (Database database in databases)
if (!result.Contains(database.Owner))
result.Add(database.Owner);
这种方法缺乏性能。
有没有其他方法可以从Microsoft.SqlServer.Management.Smo.Server
类型变量中获取用户列表?
【问题讨论】:
不要在 dotnet 中这样做。在 sql 中执行。这有点像使用图书馆告诉你一本书的第 34 页上的文字是什么,而你可以直接去这本书看。这是在 t-sql 中执行此操作的一个很好的示例。 ***.com/questions/8471124/… 是数据库 SQL 或 Windows 的凭据。通常数据库设置为在 Windows 中使用组帐户。因此,您需要获取 windows 组帐户中的用户。 你能澄清什么缺乏性能吗? 它很慢,因为它需要在获取所有者信息之前为每个数据库创建一个实例。我对 SQL 查询有限制 【参考方案1】: var result = new List<string>();
foreach (Login login in m_server.Logins)
if (!login.IsDisabled)
result.Add(login.Name);
return result;
我明白了,这是完美的代码
【讨论】:
以上是关于在 C# 中查找所有 SQL Server 数据库用户的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 SQL Server 或 c# 在低和高之间查找加拿大邮政编码