SQL Server Management Studio'da hatırlanan oturum açma adı ve parola listesini kaldırma


235

Son zamanlarda benimki onarılırken şirketimizin yedek dizüstü bilgisayarını (genel bir kullanıcı kurdu) kullandım. Veritabanında oturum açarken SQL Server Management Studio'daki "Parolayı hatırla" seçeneğini işaretledim.

Dizüstü bilgisayarı kullanacak bir sonraki kişinin giriş adımı ve şifremi kullanmasını önlemek için kullandığım giriş ve şifre bilgilerini temizlemem gerekiyor. Bunu nasıl yapabilirim?

Yanıtlar:


334

Burada başka bir yanıt da 2012'den bu yana kaldırabilirsiniz Önbelleğe alınmış oturum açma yoluyla önbelleğe alınan sunucu adları Sunucuya Bağlan iletişim kutusundan nasıl kaldırılır? . MRU listesindeki bu silme işleminin 2016 ve 2017 yıllarında iyi çalıştığını doğruladı.

SQL Server Management Studio 2017 dosyayı silin C:\Users\%username%\AppData\Roaming\Microsoft\SQL Server Management Studio\14.0\SqlStudio.bin

SQL Server Management Studio 2016 dosyayı sil C:\Users\%username%\AppData\Roaming\Microsoft\SQL Server Management Studio\13.0\SqlStudio.bin

SQL Server Management Studio 2014 dosyayı silin C:\Users\%username%\AppData\Roaming\Microsoft\SQL Server Management Studio\12.0\SqlStudio.bin

SQL Server Management Studio 2012 dosyayı silin C:\Users\%username%\AppData\Roaming\Microsoft\SQL Server Management Studio\11.0\SqlStudio.bin

SQL Server Management Studio 2008 dosyayı silin C:\Users\%username%\AppData\Roaming\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.bin

SQL Server Management Studio 2005 dosyayı sil - yukarıdaki yanıtla aynı, ancak Vista yolu. C:\Users\%username%\AppData\Roaming\Microsoft\Microsoft SQL Server\90\Tools\Shell\mru.dat

Bunlar Vista / 7/8 için profil yollarıdır.

DÜZENLE:

Not, AppDatagizli bir klasördür. Explorer'da gizli klasörleri göstermeniz gerekir.

DÜZENLEME: Yalnızca Sunucu / Kullanıcı adı açılır listesinden delete tuşuna basabilirsiniz (SSMS v18.0 için çalıştığı onaylanmıştır). Https://blog.sqlauthority.com/2013/04/17/sql-server-remove-cached-login-from-ssms-connect-dialog-sql-in-sixty-seconds-049/ adresinden gelen orijinal kaynak bu özellik 2012'den beri mevcuttur!


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

8
+1 Teşekkürler! Kaldırma C:\Users\%username%\AppData\Roaming\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.binWin7'de benim için çalıştı.
IsmailS

6
Bu başka bir soru olabilir, ama çok ürüne özgü olabileceğinden muhtemelen kapanacağından korkuyorum. Ancak yukarıdaki dosyalarda saklanan bilgileri düzenlemek için herhangi bir neden var mı? Bazı kaydedilmiş girişleri kaldırmak istiyorum.
Vikas

5
SSMS 2012 için % AppData% \ Microsoft \ SQL Server Management Studio \ 11.0 \ SqlStudio.bin benim için çalıştı.
J Bryan Price

3
SQL 2008 R2 ile benim için çalıştı. Bunu yapmadan önce SQL Studio'nun kapalı olduğundan emin olun veya dosyayı hemen hemen yeniden oluşturur.
Kyle Heon

36

SSMS 2012 çözümünü arayanlar için ... şu cevaba bakınız:

Önbelleğe alınan girişi kaldır 2012

Esasen, 2012'de sunucuyu, o sunucu için tüm önbelleğe alınmış girişleri temizleyen sunucu listesi açılır listesinden silebilirsiniz.

V17'de de çalışır (derleme 14.x).


2
2014 kullanıcıları bunu kullanmalı! SSMS 2014 kullanıyorum, SqlStudio.bin'im yoktu (üst cevaba bakınız), ancak bu cevaptaki bağlantıyı takip ettim ve işe yaradı (ve çok daha kolay).
yzorg

3
Bu yanıtta "Önbelleğe alınmış giriş 2012'yi kaldır" bağlantısının başlığına rağmen, bağlandığı cevabın bir giriş değil önbelleğe alınmış bir sunucu adının nasıl silineceği ile ilgili olduğunu unutmayın. Bağlantılı yanıtı yeterince dikkatle okumadım ve Giriş açılır listesinden tek bir girişi kaldırma tekniğini deniyordum. Bu işe yaramıyor. Yalnızca Sunucu Adı açılır listesinden bir sunucu adı kaldırdığınızda çalışır. Sunucu adını silmenin yanı sıra, bu sunucu adı için tüm önbelleğe alınmış oturumları da silecektir; yalnızca tek bir girişi silemez ve diğerlerini o sunucu için bırakamazsınız.
Simon Tewsi

30

Senaryomda, sadece unutmak istemediğim birçok kaydedilmiş bağlantıya sahip belirli bir kullanıcı adını / şifreyi listeden kaldırmak istedim. Bu çıkıyor SqlStudio.bindiğerleri burada görüşüyorlar dosya bir .NET ikili seri hale olup Microsoft.SqlServer.Management.UserSettings.SqlStudio, serileştirilemezse modifiye ve belirli ayarları değiştirmek için reserialized edilebilir sınıf,.

Belirli bir giriş kaldırmayı gerçekleştirmek için, yeni bir C # .Net 4.6.1 konsol uygulaması oluşturdum ve aşağıdaki dll bulunan ad alanına bir başvuru ekledi: C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\ManagementStudio\Microsoft.SqlServer.Management.UserSettings.dll(yolunuz SSMS sürümüne bağlı olarak biraz değişebilir)

Oradan ayarları istediğiniz gibi kolayca oluşturabilir ve değiştirebilirim:

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
Çok teşekkür ederim, bir cazibe gibi çalıştı Nasıl anladınız 1) Bu dosya Microsoft.SqlServer.Management.UserSettings.SqlStudio sınıf ve .NET bir .NET ikili serileştirme olduğunu 2) ad alanı referans dll bulunur Microsoft.SqlServer.Management.UserSettings.dll ve konumunu nasıl buldunuz
Dr Manhattan

2
@DrManhattan Dosyalamak ve bir metin düzenleyicide açmak için çok basit bir .NET sınıfını ikili olarak serileştirirseniz, ikili veri ve metnin bir karışımını görürsünüz. Metnin bir kısmı dizelerinizin değerleri olacaktır (sınıfta serileştirilmiş olan varsa). Ancak dosyanın başlangıcı, serileştirilen kök türü ve geldiği derleme hakkında meta veriler olacaktır. SqlStudio.binDosyanızı açın, hem ..UserSettingsve hem de göreceksiniz ..UserSettings.SqlStudio. Oradan , ad alanını ve sınıfı içeren ..UserSettings.dllaynı dizinde bulmak kolaydı ssms.exe.
Neil

Harika, teşekkürler. Meta verileri gördüm, Microsoft.SqlServer.Management.UserSettings, Version=14.0.0.0, Culture=neutral...bana balık
Dr Manhattan

1
Bu kodu SSMS çalışırken çalıştırdım ve sonra SSMS'yi yeniden başlatarak çalışıp çalışmadığını görmek için orada kontrol ettim ve işe yaramadı, çünkü SqlStudio.bin zaten SSMS tarafından belleğe yüklenmiş ve kapatılmadan önce yeniden yazılmıştır. Sonra kod SSMS kapalı koştu ve bir cazibe gibi çalıştı.
Muhammad Mamoor Khan

1
Harika bir çözüm. Mükemmel çalışıyor. Tam olarak tüm bin dosyasını silmek zorunda kalmadan elde etmek istediğim sonuç
Kev Riley

17

Bu SQL Server Management Studio v18.0 için çalışır

"SqlStudio.bin" dosyası artık mevcut değil. Bunun yerine ayarlarımın tümü bu dosyada saklanıyor:

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

  • Notepad ++ gibi herhangi bir Texteditor'da açın
  • kaldırılacak kullanıcı adı için ctrl + f
  • ardından <Element>.......</Element>onu çevreleyen tüm bloğu silin .

teşekkürler @gluecks! diğer birçok yazı sqlstudio.bin dosyasının hala v18 için çalıştığını öne sürüyor, ancak bu benim deneyimim değildi. Şimdi sadece usersettings.xml dosyasını her ay veya iki ayda bir neyin sildiğini anlayabilirsem. Sunucu listeme tekrar girmekten bıktım!
PTansey

7

SQL Server Management Studio'nun daha yeni bir sürümünü kullanarak bunu yapmanın gerçekten basit bir yolu var (18.4 kullanıyorum)

  1. "Sunucuya Bağlan" iletişim kutusunu aç
  2. Açılması için "Sunucu Adı" açılır menüsünü tıklayın
  3. Bir sunucu adını vurgulamak için klavyenizdeki aşağı oka basın
  4. Klavyenizdeki delete tuşuna basın

Giriş gitti! Dll veya bin dosyaları ile uğraşmak yok.


6

Gluecks artık belirttiği gibi SqlStudio.biniçinde Microsoft SQL Server Management Studio 18 . Bir de bunu buldum UserSettings.xmlin C:\Users\userName\AppData\Roaming\Microsoft\SQL Server Management Studio\18.0. Ancak <Element>kimlik bilgisini içeren kaldırma çalışmıyor gibi görünüyor, kapatıp tekrar açtığımda xml dosyasına geri dönüyor.

Anlaşılan, önce SQL Server Management Studio'yu kapatmanız , ardından UserSettings.xmldosyayı favori düzenleyicinizde, örneğin Visual Studio Code'da düzenlemeniz gerekir. Sanırım bu xml dosyasının yanında bir yerde SSMS'de önbelleğe alınmış mı ?! Ve açık değil Control Panel\All Control Panel Items\Credential Manager\Windows Credentials.


4

SQL Server Management Studio 2008 için

  1. Sen gitmek gerekir C: \ Documents and Settings \% username% \ Application Data \ Microsoft \ Microsoft SQL Server \ 100 \ Araçlar \ Shell

  2. SqlStudio.bin dosyasını silin


3

Sil:

C: \ Belgeler ve Ayarlar \% Kullanıcı Adınız% \ Uygulama Verileri \ Microsoft \ Microsoft SQL Server \ 90 \ Araçlar \ Shell \ mru.dat "


1
MSSSMS2008E'yi Windows 7 altında yükledim ve hatta% AppData% \ Microsoft \ Microsoft SQL Server \ 100 \ Tools \ Shell'de% LocalAppData% \ Microsoft \ Microsoft SQL Server \ 100 \ Tools \ Shell'de mru.data bile yok. Ancak Robin Luiten'in cevabı hem Windows XP hem de Windows 7 altında yardımcı oluyor. Gördüğüm kadarıyla tartışmamız sık sık gerçekleşiyor: tinyurl.com/ybc8x8p
abatishchev

2

XP'de .mru.dat dosyası C: \ Documents and Settings \ Name \ Application Data \ Microsoft \ Microsoft SQL Server \ 90 \ Tools \ ShellSEM dizinindedir.

Ancak, kaldırmak hiçbir şey yapmaz.

XP'deki listeyi kaldırmak için sqlstudio bin dosyasını C: \ Documents and Settings \ Name \ Application Data \ Microsoft \ Microsoft SQL Server \ 100 \ Tools \ Shell'den kesin ve masaüstünüze yapıştırın.

SQL'i deneyin

Eğer işe yaradıysa, sqlstudio bin dosyasını masaüstünden silin.

Kolay :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.