การลบรายการล็อกอินและรหัสผ่านที่จดจำไว้ใน 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เป็นโฟลเดอร์ที่ซ่อนอยู่ คุณต้องแสดงโฟลเดอร์ที่ซ่อนอยู่ใน explorer

แก้ไข: คุณสามารถกดลบจากดรอปดาวน์เซิร์ฟเวอร์ / ชื่อผู้ใช้ (ยืนยันว่าใช้งานได้กับ SSMS v18.0) แหล่งต้นฉบับจากhttps://blog.sqlauthority.com/2013/04/17/sql-server-remove-cached-login-from-ssms-connect-dialog-sql-in-sixty-sixty-seconds-049/ซึ่งกล่าวถึงว่า คุณลักษณะนี้มีให้ตั้งแต่ปี 2012!


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

8
+1 ขอบคุณ! การลบC:\Users\%username%\AppData\Roaming\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.binทำงานให้ฉันใน Win7
IsmailS

6
อาจเป็นคำถามอีกข้อหนึ่ง แต่ฉันเกรงว่ามันจะปิดตัวลงเนื่องจากอาจเป็นผลิตภัณฑ์ที่เฉพาะเจาะจงมาก แต่มีเหตุผลใดที่แก้ไขข้อมูลที่จัดเก็บในไฟล์ด้านบน? ฉันต้องการลบข้อมูลเข้าสู่ระบบที่บันทึกไว้บางส่วน
Vikas

5
% AppData% \ Microsoft \ SQL การจัดการเซิร์ฟเวอร์ Studio \ 11.0 \ SqlStudio.binสำหรับ SSMS 2012 ทำงานให้ฉัน
J Bryan Price

3
ทำงานให้ฉันด้วย SQL 2008 R2 ตรวจสอบให้แน่ใจว่าคุณปิด SQL Studio ก่อนที่คุณจะทำเช่นนี้หรือสร้างไฟล์ขึ้นใหม่เกือบจะในทันที
Kyle Heon

36

สำหรับผู้ที่มองหาโซลูชัน SSMS 2012 ... ดูคำตอบนี้:

ลบการเข้าสู่ระบบที่เก็บไว้ในแคช 2012

โดยพื้นฐานแล้วในปี 2012 คุณสามารถลบเซิร์ฟเวอร์ออกจากรายการเซิร์ฟเวอร์แบบเลื่อนลงซึ่งจะเป็นการล้างข้อมูลการเข้าสู่ระบบแคชทั้งหมดสำหรับเซิร์ฟเวอร์นั้น

สามารถใช้งานได้ใน v17 (รุ่น 14.x)


2
ผู้ใช้ปี 2557 ควรใช้สิ่งนี้! ฉันใช้ SSMS 2014 ฉันไม่มี SqlStudio.bin (ดูคำตอบยอดนิยม) แต่ฉันไปตามลิงก์ในคำตอบนี้และใช้งานได้ (และง่ายกว่ามาก)
yzorg

3
โปรดทราบว่าแม้จะมีชื่อของลิงก์ในคำตอบนี้ "ลบการลงชื่อเข้าใช้แคช 2012" แต่คำตอบที่ลิงก์นั้นเกี่ยวข้องกับวิธีลบชื่อเซิร์ฟเวอร์แคชไม่ใช่การเข้าสู่ระบบ ฉันไม่ได้อ่านคำตอบที่เชื่อมโยงอย่างระมัดระวังเพียงพอและพยายามใช้เทคนิคเพื่อลบการเข้าสู่ระบบเดียวจากรายการแบบเลื่อนลงเข้าสู่ระบบ ไม่ได้ผล ใช้งานได้เฉพาะเมื่อคุณลบชื่อเซิร์ฟเวอร์จากรายการดรอปดาวน์ชื่อเซิร์ฟเวอร์ พร้อมกับการลบชื่อเซิร์ฟเวอร์มันจะลบการเข้าสู่ระบบแคชทั้งหมดสำหรับชื่อเซิร์ฟเวอร์นั้น คุณไม่สามารถลบเพียงเข้าสู่ระบบเดียวและออกจากคนอื่นสำหรับเซิร์ฟเวอร์นั้น
Simon Tewsi

30

ในสถานการณ์ของฉันฉันแค่ต้องการลบชื่อผู้ใช้ / รหัสผ่านเฉพาะจากรายการที่มีการเชื่อมต่อที่บันทึกไว้อื่น ๆ อีกมากมายฉันไม่ต้องการที่จะลืม มันกลับกลายเป็นว่าSqlStudio.binไฟล์อื่น ๆ กำลังพูดถึงที่นี่คือ. NET Microsoft.SqlServer.Management.UserSettings.SqlStudioเลขลำดับอนุกรมของชั้นซึ่งสามารถ deserialized แก้ไขและ reserialized เพื่อแก้ไขการตั้งค่าเฉพาะ

เพื่อให้การลบการเข้าสู่ระบบสำเร็จฉันได้สร้างแอปพลิเคชันคอนโซล 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) ไฟล์นั้นเป็น. NET เลขลำดับอนุกรมของ Microsoft.SqlServer.Management.UserSettings.SqlStudio และ 2) การอ้างอิงถึง namespace ตั้งอยู่ใน dll Microsoft.SqlServer.Management.UserSettings.dll และวิธีการที่คุณพบตำแหน่งของมัน
ดร. แมนฮัตตัน

2
@DrManhattan หากคุณไบนารีเป็นอนุกรม. NET คลาสที่ง่ายมากที่จะจัดเก็บไฟล์และเปิดในโปรแกรมแก้ไขข้อความคุณจะเห็นการผสมผสานของข้อมูลไบนารีและข้อความ ข้อความบางส่วนจะเป็นค่าของสตริงของคุณ (ถ้าคุณมีในชั้นเรียนซึ่งต่อเนื่องกัน) อย่างไรก็ตามการเริ่มต้นของไฟล์จะเป็นข้อมูลเมตาเกี่ยวกับประเภทของรากซึ่งต่อเนื่องกันและแอสเซมบลีที่มาจาก เปิดของคุณSqlStudio.binไฟล์และคุณจะเห็นทั้งสองและ..UserSettings ..UserSettings.SqlStudioจากที่นั่นหาได้ง่าย..UserSettings.dllในไดเรกทอรีเดียวกับssms.exeที่มีเนมสเปซและคลาส
Neil

มันเยี่ยมมากขอบคุณ ผมเห็นเมตาMicrosoft.SqlServer.Management.UserSettings, Version=14.0.0.0, Culture=neutral...คุณได้สอนให้ผมวิธีการตกปลาขอบคุณ
ดรแมนฮัตตัน

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

  • เปิดใน Texteditor ใด ๆ เช่น Notepad ++
  • ctrl + f เพื่อลบชื่อผู้ใช้
  • จากนั้นลบทั้ง<Element>.......</Element>บล็อกที่ล้อมรอบ

ขอบคุณ @gluecks! โพสต์อื่น ๆ มากมายแนะนำให้ไฟล์ sqlstudio.bin ยังคงใช้งานได้กับ v18 แต่นั่นไม่ใช่ประสบการณ์ของฉัน ตอนนี้ถ้าฉันสามารถหาได้ว่ามีอะไรเช็ดไฟล์ usersettings.xml ทุกเดือนหรือสองเดือน ฉันเหนื่อยมากที่ต้องป้อนรายชื่อเซิร์ฟเวอร์อีกครั้ง!
PTansey

7

มีวิธีที่ง่ายมากในการทำเช่นนี้โดยใช้ SQL Server Management Studio รุ่นล่าสุด (ฉันใช้ 18.4)

  1. เปิดกล่องโต้ตอบ "เชื่อมต่อกับเซิร์ฟเวอร์"
  2. คลิกเมนูดรอปดาวน์ "ชื่อเซิร์ฟเวอร์" เพื่อเปิดขึ้น
  3. กดลูกศรลงบนแป้นพิมพ์เพื่อไฮไลต์ชื่อเซิร์ฟเวอร์
  4. กดปุ่มลบบนคีย์บอร์ดของคุณ

เข้าสู่ระบบหายไป! ไม่ยุ่งกับไฟล์ dll หรือ bin


6

ในฐานะที่เป็น gluecks ชี้ให้เห็นไม่มากSqlStudio.binในสตูดิโอของ Microsoft SQL Server จัดการ 18 ฉันยังพบนี้ในUserSettings.xml C:\Users\userName\AppData\Roaming\Microsoft\SQL Server Management Studio\18.0แต่การลบ<Element>ข้อมูลรับรองที่มีดูเหมือนว่าไม่ทำงานมันจะกลับมาที่ไฟล์ xml ทันทีหากฉันปิดแล้วเปิดใหม่อีกครั้ง

ปรากฎว่าคุณต้องปิด SQL Server Management Studio ก่อนจากนั้นแก้ไขUserSettings.xmlไฟล์ในโปรแกรมแก้ไขที่คุณโปรดปรานเช่น Visual Studio Code ฉันเดาว่าแคชอยู่ที่ไหนซักแห่งใน SSMS นอกเหนือจากไฟล์ xml นี้! Control Panel\All Control Panel Items\Credential Manager\Windows Credentialsและมันก็ไม่ได้อยู่ใน


4

สำหรับ SQL Server Management Studio 2008

  1. คุณต้องไปที่Server \ 100 \ Tools \ Shell SQL Data \ Microsoft \ Microsoft ชื่อผู้ใช้ Settings \% Data \ Microsoft \ Microsoft

  2. ลบSqlStudio.bin


3

ลบ:

C: \ Documents and Settings \% ชื่อผู้ใช้% \ Application Data \ Microsoft \ Microsoft SQL Server \ 90 \ Tools \ Shell \ mru.dat SQL ของคุณ


1
ฉันได้ติดตั้ง MSSSMS2008E ใน Windows 7 และยังไม่ได้ติดตั้ง mru.data ไม่ได้อยู่ใน% \ AppData% \ Microsoft \ Microsoft SQL Server \ 100 \ Tools \ Shell SQL Server \ 100 \ Tools \ Shell% LocalAppData% \ Microsoft \ Microsoft แต่คำตอบของ Robin Luiten ช่วยได้ทั้ง Windows XP และ Windows 7 เท่าที่ฉันเห็นการโต้เถียงของเราเกิดขึ้นบ่อยครั้ง: tinyurl.com/ybc8x8p
abatishchev

2

ใน XP ไฟล์. mru.dat อยู่ใน C: \ Documents และ Data \ Microsoft \ Microsoft SQL Server \ 90 \ Tools \ ShellSEM Data \ Microsoft \ Microsoft SQL Server \ 90 \ Tools \ ShellSEM

อย่างไรก็ตามการลบมันจะไม่ทำอะไรเลย

หากต้องการลบรายการใน XP ให้ตัดไฟล์ bin sqlstudio จาก C: \ Documents และ Data \ Microsoft \ Microsoft SQL Server \ 100 \ Tools \ Shell Data \ Microsoft \ Microsoft SQL Server \ 100 \ Tools \ Shell และวางไว้บนเดสก์ท็อปของคุณ

ลองใช้ SQL

หากใช้งานได้ให้ลบไฟล์ bin sqlstudio ออกจากเดสก์ท็อป

ง่าย :)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.