0

ローカル システム アカウントを使用して Windows WCF サービスを実行しています。サービス内から、ドメイン ユーザー アカウントで SMO を使用して SQL Server インスタンスに接続しようとしています。

以下に示すコードは、SQL Server 2014 SDK の SMO を使用している場合に正常に動作しますが、SQL Server 2016 CTP 3.2 SMO を使用すると、次のような例外がスローされます。

ユーザー {ドメイン}{ローカル マシン名} のログインに失敗しました

ここで、サーバー接続オブジェクトでドメイン管理者の資格情報を指定しました。

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 バイナリは、指定されたユーザー アカウントを偽装できないようです。

よろしく

アシッシュ

4

1 に答える 1

0

上記のコードは、SQL 2016 RC3 リリースで期待どおりに機能し始めました。SQL 2016 CTP3.2 にバグがあり、ユーザー アカウントの偽装でこのエラーが発生したと思います。

〜アッシュ

于 2016-04-20T05:28:19.437 に答える