【发布时间】: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 中执行此操作的一个很好的示例。 stackoverflow.com/questions/8471124/…
-
是数据库 SQL 或 Windows 的凭据。通常数据库设置为在 Windows 中使用组帐户。因此,您需要获取 windows 组帐户中的用户。
-
你能澄清什么缺乏性能吗?
-
它很慢,因为它需要在获取所有者信息之前为每个数据库创建一个实例。我对 SQL 查询有限制
标签: c# sql-server smo