在 SQL 2016 SMO 中模拟用户帐户失败

Impersonating user account fails in SQL 2016 SMO

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

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

Login Failed for user {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 服务通过域管理员帐户而不是本地系统帐户,那么下面的代码工作正常 w/o 有任何异常。

看起来 SQL 2016 SMO 二进制文件无法模拟给定的用户帐户。

此致

阿希什

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

~阿希什