SQL Server Management Studioで記憶されているログインとパスワードのリストを削除する


235

私は最近、私の一般的なユーザーがセットアップした会社のスペアラップトップを修理中に使用しました。データベースにログインするときに、SQL Server Management Studioの[パスワードを記憶する]オプションをオンにしました。

ラップトップを使用する次の人がログイン名とパスワードを使用できないようにするために使用したログインとパスワードの情報をクリアする必要があります。これどうやってするの?

回答:


334

ここでの別の回答でも、2012年以降、[サーバーに接続]ダイアログからキャッシュされたサーバー名を削除する方法でキャッシュされたログインを削除できると言及しています。。MRUリストのこの削除が2016と2017で正常に機能することを確認しました。

SQL Server Management Studio 2017がファイルを削除する C:\Users\%username%\AppData\Roaming\Microsoft\SQL Server Management Studio\14.0\SqlStudio.bin

SQL Server Management Studio 2016はファイルを削除します C:\Users\%username%\AppData\Roaming\Microsoft\SQL Server Management Studio\13.0\SqlStudio.bin

SQL Server Management Studio 2014はファイルを削除します C:\Users\%username%\AppData\Roaming\Microsoft\SQL Server Management Studio\12.0\SqlStudio.bin

SQL Server Management Studio 2012はファイルを削除します C:\Users\%username%\AppData\Roaming\Microsoft\SQL Server Management Studio\11.0\SqlStudio.bin

SQL Server Management Studio 2008はファイルを削除します C:\Users\%username%\AppData\Roaming\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.bin

SQL Server Management Studio 2005はファイルを削除します–上記の回答と同じですが、Vistaパスです。 C:\Users\%username%\AppData\Roaming\Microsoft\Microsoft SQL Server\90\Tools\Shell\mru.dat

これらはVista / 7/8のプロファイルパスです。

編集:

注、AppData隠しフォルダです。エクスプローラで隠しフォルダを表示する必要があります。

編集:サーバー/ユーザー名のドロップダウンから削除を押すだけです(SSMS v18.0で動作することが確認されています)。それを言及したhttps://blog.sqlauthority.com/2013/04/17/sql-server-remove-cached-login-from-ssms-connect-dialog-sql-in-sixty-seconds-049/からの元のソースこの機能は2012年から利用可能です。


39
"%AppData%\ Microsoft \ Microsoft SQL Server \ 100 \ Tools \ Shell \ SqlStudio.bin"
abatishchev

8
+1ありがとうございます!C:\Users\%username%\AppData\Roaming\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.binWin7では削除が機能しました。
IsmailS 2010

6
これは別の質問になる可能性がありますが、製品固有の問題になる可能性があるため、終了する可能性があります。しかし、上記のファイルに格納されている情報を編集する理由は何ですか?保存したログインをいくつか削除したいのですが。
Vikas

5
SSMS 2012の%AppData%\ Microsoft \ SQL Server Management Studio \ 11.0 \ SqlStudio.binが機能しました。
Jブライアン価格

3
SQL 2008 R2で私のために働いた。これを行う前に、SQL Studioが閉じていることを確認してください。そうしないと、ほとんどすぐにファイルが再作成されます。
Kyle Heon 2013年

36

SSMS 2012ソリューションをお探しの方は、この回答をご覧ください。

キャッシュされたログイン2012を削除する

基本的に、2012年にサーバーリストのドロップダウンからサーバーを削除できます。これにより、そのサーバーのすべてのキャッシュされたログインがクリアされます。

v17(ビルド14.x)でも機能します。


2
2014ユーザーはこれを使用する必要があります!私はSSMS 2014を使用していますが、SqlStudio.binがありませんでしたが(トップの回答を参照)、この回答のリンクをたどったところ、うまくいきました(はるかに簡単です)。
yzorg

3
この回答のリンクのタイトルは「キャッシュされたログイン2012を削除する」ですが、リンク先の回答はログインではなく、キャッシュされたサーバー名を削除する方法に関するものであることに注意してください。私はそのリンクされた回答を注意深く読んでおらず、ログインドロップダウンリストから単一のログインを削除する手法を試していました。それはうまくいきません。[サーバー名]ドロップダウンリストからサーバー名を削除する場合にのみ機能します。サーバー名を削除するだけでなく、そのサーバー名のキャッシュされたログインもすべて削除します。単一のログインだけを削除して、他のログインをそのサーバーに残すことはできません。
Simon Tewsi

30

私のシナリオでは、私が忘れたくない他の多くの保存された接続があったリストから特定のユーザー名/パスワードを削除したかっただけです。SqlStudio.bin他の人がここで議論しているファイルは、Microsoft.SqlServer.Management.UserSettings.SqlStudioクラスの.NETバイナリシリアル化であることがわかりました。これは、特定の設定を変更するために、逆シリアル化、変更、および再シリアル化できます。

特定のログインを削除するために、新しいC#.Net 4.6.1コンソールアプリケーションを作成し、次のdllにある名前空間への参照を追加しましたC:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\ManagementStudio\Microsoft.SqlServer.Management.UserSettings.dll(パスはSSMSバージョンによって若干異なる場合があります)。

そこから、必要に応じて設定を簡単に作成および変更できます。

using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using Microsoft.SqlServer.Management.UserSettings;

class Program
{
    static void Main(string[] args)
    {
        var settingsFile = new FileInfo(@"C:\Users\%username%\AppData\Roaming\Microsoft\SQL Server Management Studio\13.0\SqlStudio.bin");

        // Backup our original file just in case...
        File.Copy(settingsFile.FullName, settingsFile.FullName + ".backup");

        BinaryFormatter fmt = new BinaryFormatter();

        SqlStudio settings = null;

        using(var fs = settingsFile.Open(FileMode.Open))
        {
            settings = (SqlStudio)fmt.Deserialize(fs);
        }

        // The structure of server types / servers / connections requires us to loop
        // through multiple nested collections to find the connection to be removed.
        // We start here with the server types

        var serverTypes = settings.SSMS.ConnectionOptions.ServerTypes;

        foreach (var serverType in serverTypes)
        {
            foreach (var server in serverType.Value.Servers)
            {
                // Will store the connection for the provided server which should be removed
                ServerConnectionSettings removeConn = null;

                foreach (var conn in server.Connections)
                {
                    if (conn.UserName == "adminUserThatShouldBeRemoved")
                    {
                        removeConn = conn;
                        break;
                    }
                }

                if (removeConn != null)
                {
                    server.Connections.RemoveItem(removeConn);
                }
            }
        }

        using (var fs = settingsFile.Open(FileMode.Create))
        {
            fmt.Serialize(fs, settings);
        }
    }
}

2
どうもありがとうございました。どうやって理解したのですか。1)そのファイルはMicrosoft.SqlServer.Management.UserSettings.SqlStudioクラスの.NETバイナリシリアル化であり、2)名前空間への参照はdllにあります。 Microsoft.SqlServer.Management.UserSettings.dllとその場所の特定方法
Dr Manhattan

2
@DrManhattan非常に単純な.NETクラスをバイナリ化してファイル化し、それをテキストエディタで開くと、バイナリデータとテキストの混合が表示されます。テキストの一部は文字列の値になります(シリアル化されたクラスに文字列がある場合)。ただし、ファイルの先頭は、シリアル化されたルートタイプとそれが由来するアセンブリに関するメタデータになります。あなたの開いSqlStudio.binたファイルを、あなたは両方が表示されます..UserSettings..UserSettings.SqlStudio。そこから、名前空間とクラスを含む..UserSettings.dllと同じディレクトリで簡単に見つけることができましたssms.exe
Neil

それは素晴らしいです、ありがとう。私はメタデータを見ましたMicrosoft.SqlServer.Management.UserSettings, Version=14.0.0.0, Culture=neutral...、あなたは私に釣り方を教えてくれました、ありがとう
Dr Manhattan

1
SSMSを実行してこのコードを実行し、SSMSを再起動して機能するかどうかを確認しましたが、機能しませんでした。SqlStudio.binはSSMSによってメモリに読み込まれ、閉じる前に書き換えられたためです。次に、SSMSを閉じてコードを実行し、魅力的なように動作しました。
ムハンマドマモアカーン

1
素晴らしいソリューション。完璧に動作します。binファイル全体を削除せずに達成したかった正確な結果
Kev Riley

17

これはSQL Server Management Studio v18.0で機能します

「SqlStudio.bin」ファイルはもう存在していないようです。代わりに、私の設定はすべてこのファイルに保存されます:

C:\Users\*********\AppData\Roaming\Microsoft\SQL Server Management Studio\18.0\UserSettings.xml

  • Notepad ++のような任意のTexteditorでそれを開きます
  • 削除するユーザー名はctrl + f
  • 次に、それ<Element>.......</Element>を囲むブロック全体を削除します。

@gluecksありがとうございます!他の多くの投稿は、sqlstudio.binファイルがv18でも機能することを示唆していますが、それは私の経験ではありませんでした。ここで、usersettings.xmlファイルを1か月または2か月に1回消去しているのは何かしかわからない場合です。サーバーのリストを再入力する必要があるので、私はとてもうんざりしています!
PTansey

7

SQL Server Management Studioのより新しいバージョンを使用してこれを行う本当に簡単な方法があります(私は18.4を使用しています)

  1. 「サーバーに接続」ダイアログを開く
  2. 「サーバー名」ドロップダウンをクリックして開きます
  3. キーボードの下矢印を押して、サーバー名を強調表示します
  4. キーボードのDeleteキーを押します

ログインがなくなりました!dllやbinファイルをいじる必要はありません。


6

接着剤が指摘したようにSqlStudio.binMicrosoft SQL Server Management Studio 18にはこれ以上ありません。これもで見つけましUserSettings.xmlC:\Users\userName\AppData\Roaming\Microsoft\SQL Server Management Studio\18.0。しかし<Element>、資格情報を含むを削除しても機能しないようです。それを閉じて再び開くと、xmlファイルに戻ってきます。

結局のところ、まずSQL Server Management Studio閉じ、次にUserSettings.xmlVisual Studio Codeなどのお気に入りのエディターでファイルを編集する必要があります。このxmlファイル以外のSSMSのどこかにキャッシュされていると思いますか?!そして、それはオンではありませんControl Panel\All Control Panel Items\Credential Manager\Windows Credentials


4

SQL Server Management Studio 2008の場合

  1. C:\ Documents and Settings \%username%\ Application Data \ Microsoft \ Microsoft SQL Server \ 100 \ Tools \ Shellに移動する必要があります

  2. SqlStudio.binを削除します


3

削除:

C:\ Documents and Settings \%Your Username%\ Application Data \ Microsoft \ Microsoft SQL Server \ 90 \ Tools \ Shell \ mru.dat "


1
Windows 7にMSSSMS2008Eをインストールしましたが、%AppData%\ Microsoft \ Microsoft SQL Server \ 100 \ Tools \ Shellにも%LocalAppData%\ Microsoft \ Microsoft SQL Server \ 100 \ Tools \ Shellにもmru.dataがありません。しかし、Robin Luitenの回答は、Windows XPとWindows 7の両方で役立ちます。私が見る限り、私たちの論争は頻繁に行われます:tinyurl.com/ybc8x8p
abatishchev

2

XPでは、.mru.datファイルはC:\ Documents and Settings \ Name \ Application Data \ Microsoft \ Microsoft SQL Server \ 90 \ Tools \ ShellSEMにあります

ただし、削除しても何も起こりません。

XPでリストを削除するには、C:\ Documents and Settings \ Name \ Application Data \ Microsoft \ Microsoft SQL Server \ 100 \ Tools \ Shellからsqlstudio binファイルを切り取り、デスクトップに貼り付けます。

SQLを試す

機能している場合は、sqlstudio binファイルをデスクトップから削除します。

簡単:)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.