web-dev-qa-db-ja.com

別のドメインでWindows認証を使用してSQL Serverに接続する

別のドメインのVPN上のリモートSQL Serverに接続しようとしています。 SQL Serverでサーバー名を入力し、[追加の接続パラメーター]を選択して、学校で必要な追加の情報を追加します。

Integrated Security=SSPI; User ID=DOMAIN\username; Password=Password

次のエラーが発生します。

ログインに失敗しました。ログインは信頼されていないドメインからであり、Windows認証では使用できません。

83
stergosz

アプリケーションの接続文字列からプレーンテキストでWindows資格情報を渡そうとしています。これは単にWindows認証が機能する方法ではなく、主に目的を無効にします。

また、自分のドメインに同じパスワードで同じユーザー名を作成するだけでは、魔法のように機能することを期待できません。ドメイン名は引き続き検証の一部です。マシンはドメインの一部である必要があります。または、マシンが属しているドメインは、学校のドメインによって信頼されている必要があります。

私が知っている唯一の回避策はSSMSです(そしてそれは Plan ExplorerとSentryOne のような他のアプリでも機能します)、そしてそれがrunas /netonlyトリック この答え で説明されています。これは、自分のログインではなく、指定したログインとしてSSMSを起動するようにWindowsをだます(これはSSMSの接続プロパティダイアログで設定できるものではなく、コマンドラインまたはショートカットからSSMSを起動する方法です)。

runas /netonly /user:domain\username "C:\path_to\ssms.exe"

これにより、リモートドメインでパスワードの入力を求められます。ローカルのWindows資格情報を使用しているように見ますただし、そうではありません

これは、Visual Studioを含むすべてのアプリケーションで機能します。

だからあなたのオプションは:

  • 大学に、マシンをドメインに参加させる
  • 大学にドメインを信頼できるドメインとして追加させる
  • vPN内にジャンプボックスがあり、SQL Serverマシンに直接接続するツールをRDPおよび使用できます
  • sQL認証を使用する
  • 使用 runas /netonly SSMSまたはVisual Studioでのトリック
79
Aaron Bertrand

runas /netonlyメソッドに優先して使用する別の方法があります。

Windowsのコントロールパネルにある資格情報マネージャーを使用して、Windowsのプロファイルに資格情報を追加できます。

  1. 資格情報マネージャーを開く
  2. [Windows資格情報の追加]をクリックします
  3. 資格情報を保存するSQLインスタンスの名前とポート番号を「インターネットまたはネットワークアドレス」フィールドに入力します。

    例:UniServer:1433(1433がデフォルトのポートです。特に、名前付きインスタンスに接続している場合は、別のポートが必要になる場合があります)

  4. 「ユーザー名」を入力します(ドメインを含めることを忘れないでください。例:MYDOMAIN\MYUSER
  5. 「パスワード」を入力する
  6. OKをクリックします

サーバー名、ポート、ログインの詳細が正しい場合は、ほとんどのクライアントツール、SSMS、ExcelなどからWindows認証を使用できるはずです。それらはすべて保存された資格情報を使用します。

ヒント:資格情報を追加するときに、サーバーのFQNを使用する必要がある場合があります。例えばUniServer.UniDomain.org:1433、それはすべてネットワークの詳細に依存します。

これがメソッドの簡単なデモです: http://youtu.be/WiVBPsqB9b4

これは、VMデスクトップで実行中のSQL Serverに接続しようと試みて失敗した)画面に表示され、必要な資格情報を追加して再試行します-成功。

ヒント:「cmdkey/add」コマンドを使用して、保存された資格情報を作成および更新するスクリプトを作成します。

115
Mister Magoo