ユーザーがSQLServerを起動し、現在ログインしているドメインとは異なるドメインを使用してSQLServerに認証できるようにする必要があるシナリオがあります。したがって、これが設定される方法を明確にするために:
- ユーザーがオフィスに到着し、企業ドメインにログインします(簡単にするためにLOCALDOMAINと呼びます)。
- 彼らは別のドメインのリモートデータベースに接続したいと考えています(REMOTEDOMAINと呼びましょう)
- 最初に、彼らはREMOTEDOMAINへのVPNトンネルを確立するVPNツールを起動します(これはすべてテストされ、うまく機能します)
- ただし、デフォルトでSSMSを起動すると、LOCALDOMAINを介したWindows Authのみが許可され、REMOTEDOMAINを選択するオプションも利用できません。
私たちが発見したのは、コマンドラインからこれを実行すると機能するということです。
RUNAS /user:REMOTEDOMAIN\AUserName /netonly "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe
「REMOTEDOMAIN\AUserNameのパスワードを入力してください:」というメッセージが表示されます。正しいパスワードを入力すると、SSMSが起動し、リモートデータベースに接続できます。ただし、C#で同じことをより良いインターフェイスで実行しようとすると、「ログオンの失敗:不明なユーザー名または不正なパスワード」が表示されます。コードは次のとおりです。
System.Security.SecureString password = new System.Security.SecureString();
foreach(char c in txtPassword.Text.ToCharArray()){
password.AppendChar(c);
}
System.Diagnostics.ProcessStartInfo procInfo = new System.Diagnostics.ProcessStartInfo();
procInfo.Arguments = "/netonly";
procInfo.FileName = @"C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe"; ;
procInfo.Domain = "REMOTEDOMAIN";
procInfo.Verb = "runas";
procInfo.UserName = txtUsername.Text;
procInfo.Password = password;
procInfo.UseShellExecute = false;
System.Diagnostics.Process.Start(procInfo);
ドメインが付加されている場合とされていない場合のユーザー名を試しましたが、どちらも機能しません。誰かが似たようなことをしようとしたことがありますか?ありがとう