【问题标题】:Find all SQL Server database users in C#在 C# 中查找所有 SQL Server 数据库用户
【发布时间】: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


【解决方案1】:
      var result = new List<string>();
        foreach (Login login in m_server.Logins)
        {
            if (!login.IsDisabled)
            {
                result.Add(login.Name);
            }
        }
        return result;

我明白了,这是完美的代码

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-26
    • 2011-04-10
    • 2011-02-13
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多