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

时间:2016-04-14 10:20:40

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

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

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

  

登录用户{domain} {本地机器名}

失败

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

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二进制文件无法模拟给定的用户帐户。

此致

与Ashish

1 个答案:

答案 0 :(得分:0)

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

〜阿希什