SQL Server Management Studio(2005以降)で別のWindowsユーザーを接続する


333

SQL Server Management Studio 2005(またはそれ以降)で、Windows認証ユーザーを変更する方法はありますか(SQL Server 2000以前と同様)。

これは、一般的な接続プロパティダイアログです(Windows Authを選択すると、グレー表示されたUID / PWDに注意してください)。

ダイアログ

参考までに-回避策の1つは使用するrunasことですが、複数のサーバー(および複数のドメイン)で複数のWindowsアカウントを操作できるソリューションを探しています。


2
私の知る限り、Run As ...がこれを実現する唯一の方法です。Run As ...を使用して、ユーザーごとに異なる管理スタジオセッションを開始できないのはなぜですか?
DCNYAM 2009年

4
RunAsは、同じドメインやフォレストにいる場合にのみ機能します。あなたがコンサルタントであれば、同じドメインやフォレストにいることは決してないので、これは優れた機能になるでしょう。
エリック

私はあなたを感じることができます、エリック。仮想マシンをクライアントのドメイン/フォレストの一部にして、シームレスに作業できるように、クライアントでVMを使用することがありますが、複数のドメインをアクティブに使用している場合、これは面倒な場合があります。
Ed Altorfer

6
複数のドメインは1つの使用例です。もう1つは、独自のサービスアカウントでログインするWindowsサービスと、SQL接続、権限などを確認したい開発者です。運が良さそうです。。。少なくとも私たちはrunasを持っています。
Matt P.

回答:


418

SSMSの単一インスタンスで異なるユーザーとして複数のサーバーに接続する方法はありませんが、探しているのは次のRUNAS構文です。

runas /netonly /user:domain\username program.exe

「/ netonly」スイッチを使用すると、信頼が設定されていなくても、現在メンバーになっていないドメインのリモート認証情報を使用してログインできます。資格情報がリモートリソースへのアクセスに使用されることをrunasに伝えます。アプリケーションは、現在ログインしているユーザーとしてローカルコンピューターとやり取りし、資格情報を指定したユーザーとしてリモートコンピューターとやり取りします。

SSMSの複数のインスタンスを実行する必要がありますが、少なくとも、それぞれに異なるWindowsユーザーとして接続できます。


例えば: runas /netonly /user:domain\username ssms.exe


28
同じドメインで異なるユーザーが必要な場合は、/ netonlyスイッチを削除します。
jimconstable

5
netonlyスイッチについてのことは完全に黄金です。これが必要なほど多くのシナリオ。ありがとう。
Jivko Petiov

7
現時点でこれを行う最も便利な方法は+1です。MSがMSTSC /リモートデスクトップスタイルのログインダイアログをSSMSに折りたたみ、接続ごとに構成することができないのは、まだ不十分です。
ポールスミス

7
うわー!netonly!素晴らしい。いったん実行すると、Windows認証を使用してリモートサーバーに接続しようとすると、netonlyユーザーではなくローカルユーザーが表示されるのはおかしいです。接続すると魔法のように見えます...
TTT

2
以下のuser175017からの答えは私にとってはうまくいき、はるかに簡単に思え、1つのSSMSセッションでサーバー固有のWindows接続を許可します。簡単に言うと、Win 7で「資格情報マネージャー」を実行し、<servername>:1433のWindows資格情報を追加します。ここで、<servername>は完全修飾された(MyServer.MyCompany.Comなどの)SQL Serverマシンです。
David Korn、

161

ホールドshiftおよびSQL Serverのマングメントのstudionのアイコン上で右クリック。他のWindowsアカウントユーザーとして実行できます。


31
残念ながら、これはアカウントが別のドメイン/ネットワーク上にある場合は機能しません-無効なユーザー名/パスワードを返します。上記のコマンドは、別のネットワーク上にあるアカウントに関係なく機能します。
Jerad Rose 2013

1
これは私のために働いた!私の場合、同じドメインに2つのアカウントがあります。
Tathagata、

Windows 10で動作します
wrkwrk

別のドメインで私のために働いた。
Tahir Hassan

1
他のウィンドウには、どのように-に実行ユーザーアカウントと同じくらい管理者
Kiquenet 2016年

116

私が発見したもう1つの方法は、[スタート]> [コントロールパネル]> [保存されているユーザー名とパスワード]([管理ツール]> [Windows 7の資格情報マネージャー])に移動し、「runas」コマンドで使用するドメインアカウントを追加することです。

次に、SQL Management Studio 2005で、[Windows認証]を選択し、接続するサーバーを入力するだけです(グレー表示されているのはローカルユーザーですが)。

理由を聞かないで!:)

編集:資格情報マネージャーのサーバー名の後に必ず「:1433」を含めてください。そうしないと、ドメインを信頼しないために接続できない場合があります。


10
正直なところ、この答えはマークアップする必要があります。runasソリューションは私にとっては機能せず、smssがコンソールで起動したくないという頭痛を引き起こしました。これは、smssで呼び出すとどうなるかです。そして、それが起こらなくなっても、それはまだ機能しませんでした。しかし、Credential Manager> Windows資格情報の追加は機能しました。サーバー名、DOMAIN \ userユーザー名、パスワードを入力します。彼が言うように、ローカルユーザーは表示されますが、とにかく接続します。
Brian Arsuaga、

16
ネットワークアドレスとしてsqlserver.domain.com:1433を使用する必要がある場合があります。stackoverflow.com/questions/6944933を
グレッグブレイ

7
実際、これは私にとってはうまくいき、はるかに簡単に思え、1つのSSMSセッションでサーバー固有のWindows接続を許可します。「Credential Manager」を実行し、<servername>:1433のWindows資格情報を追加しました。ここで、<servername>は完全修飾されたSQL Serverマシンです(MyServer.MyCompany.Comなど)。
David Korn、

1
このrunas方法はうまくいきませんでしたが、うまくいきました。最初はCredential Managerでポート情報なしで試してみましたが、それでもログインできませんでした。CredentialManagerでポート情報を追加すると、魅力的なように機能しました。本当にありがとうございました!
ルネ・

1
これは最もエレガントな解決策かもしれません。ドメインの一部でもないSQL 2012スタンドアロンインスタンスに接続するために、Windows 8.1で動作します。<servername>:1433
Tim Lehner

10

runas /netonly /user:domain\username program.exeコマンドは上の私のために働きましたWindows 10

  • バッチファイルとして保存する
  • 管理者として実行し、

通常のユーザーとしてコマンドバッチを実行すると、以前のコメントで一部のユーザーが言及した間違ったパスワードの問題が発生しました。


これは私にとっても機能しました。ドメイン間の信頼関係はありません。私はUIで、それがローカルドメインアカウントを使用しますと言うにもかかわらず(SSMSを開始し、他のドメインアカウント使用してSQLサーバーに接続することができました。
ニール・

10

これらの回答のどれも、私が必要とするものを実行しませんでした。ローカルマシンにログインしていたのとは異なるドメインアカウントを使用してリモートサーバーにログインします。これは、VPNを介したクライアントのドメインです。私は彼らのドメインになりたくありません!

代わりに、サーバーへの接続ダイアログで[Windows認証]を選択し、[オプション]ボタンをクリックして、[追加の接続パラメーター]タブで次のように入力します。

user id=domain\user;password=password

SSMSは記憶しませんが、そのアカウントに接続します。


これは、SQL Server Management Studio 2017で私のために機能しました
natbob1

6

ちょっとしたPowerShellマジックでうまくいきます:

cmdkey /add:"SERVER:1433" /user:"DOMAIN\USERNAME" /pass:"PASSWORD"

次に、Windows認証を選択します


これは私にとっての手がかりでした、ありがとう!
David Cumps

1

Windows 10の場合:Sql Management Studioアイコン、またはメニューのショートカットに移動します:右クリック> [ファイルの場所を開く]を選択します

ここに画像の説明を入力してください

Shiftキーを押しながら右クリックして、フォルダー内のショートカットまたはssms.exeファイルをクリックします。シフトを押し続けると、「別のユーザーとして実行」という追加オプションが表示されます。

ここに画像の説明を入力してください

これにより、ログインボックスがポップアップし、セッションで実行する認証情報を入力できます。


すばらしいヒント、ありがとう!それは私の問題を解決しました;)
ハラグハン

0

誰かがこの種のシナリオを展開したい場所はたくさんありますが、統合認証が機能する方法のため、それは不可能です。

gbnが述べたように、統合認証はWindows IDに対応する特別なトークンを使用します。別のWindowsユーザーとしてアクティビティを効果的に実行できる「偽装」(おそらくRun As ...コマンドで使用される)と呼ばれるコーディング方法がありますが、実際には別のユーザーとして任意に行動する方法はありません(àla Linux)それ以外のWindowsアプリケーションでは。

複数のドメインにまたがる複数のサーバーを管理する必要がある場合は、次のいずれかを検討してください。

  1. アカウントが信頼する側のドメインのコンピューターにアクセスできるように、ドメイン間にドメインの信頼を設定します
  2. この方法でログインできるように、管理が必要なすべてのサーバーにわたってSQLユーザーを(混合認証を使用して)構成します。明らかに、これはいくつかのセキュリティ問題を引き起こし、ある時点ですべてのパスワードを変更しなければならない場合、メンテナンスの悪夢を引き起こすかもしれません。

うまくいけば、これが役立ちます!


不可能は間違っています...上記のrunas / netonly / user:domain \ username program.exeは問題なく動作します。
Chris Pierce

-3

目的を達成する唯一の方法は、ショートカットを右クリックし、「実行」機能を使用して、SSMSのいくつかのインスタンスを開くことです。


3
唯一の方法?どういたしまして。
Michel de Ruiter 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.