【问题标题】:Impersonating user account fails in SQL 2016 SMO在 SQL 2016 SMO 中模拟用户帐户失败
【发布时间】:2016-04-14 10:20:40
【问题描述】:

我正在使用本地系统帐户运行 Windows WCF 服务,并且在服务中我们尝试使用 SMO 和域用户帐户连接到 SQL Server 实例。

下面显示的代码工作正常,我正在使用 SQL Server 2014 SDK 中的 SMO,但如果我使用 SQL Server 2016 CTP 3.2 SMO,那么它会抛出一个异常,说明

用户 {domain}{local machine name} 登录失败

我在服务器连接对象中提供了域管理员凭据。

var srvConnectionConn = new ServerConnection("WIN-DVGQDI73QR6");

srvConnectionConn.ConnectAsUser = true;
srvConnectionConn.ConnectAsUserName = @"administrator@mva";
srvConnectionConn.ConnectAsUserPassword = "*****";

srvConnectionConn.ConnectTimeout = 60;
srvConnectionConn.NonPooledConnection = true;

Server srv = new Server(srvConnectionConn);
srv.SetDefaultInitFields(typeof(LogFile), "Name", "FileName");
srv.SetDefaultInitFields(typeof(FileGroup), "Name");
srv.SetDefaultInitFields(typeof(DataFile), "Name", "FileName");

Database db = srv.Databases["DB_H"];
bool bRemote = db.RemoteDataArchieveEnabled;

注意:如果我通过域管理员帐户而不是本地系统帐户运行我的 Windows 服务,那么下面的代码可以正常工作,没有任何异常。

SQL 2016 SMO 二进制文件似乎无法模拟给定的用户帐户。

问候

阿什

【问题讨论】:

  • 该错误意味着使用当前计算机帐户而不是模拟 Windows 帐户。用户的账户名是MVA\Administrator吗?你试过用这个表格吗?
  • 是的,用户帐户名为 MVA\Administrator。我也尝试过连接此帐户,但出现异常提示“用户名或密码不正确”。

标签: sql-server sql-server-2016 sql-smo


【解决方案1】:

上述代码在 SQL 2016 RC3 版本中开始按预期工作。 我猜 SQL 2016 CTP3.2 中存在一个错误,导致在模拟用户帐户时出现此错误。

~阿什

【讨论】:

    猜你喜欢
    • 2015-02-26
    • 1970-01-01
    • 2014-07-10
    • 1970-01-01
    • 1970-01-01
    • 2017-10-25
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    相关资源
    最近更新 更多