Удаление запомненного списка логина и пароля в SQL Server Management Studio - PullRequest
215 голосов
/ 08 декабря 2008

Я недавно пользовался запасным ноутбуком нашей компании (в котором настроен обычный пользователь), пока мой ремонтировали. Я проверил параметр «Запомнить пароль» в SQL Server Management Studio при входе в базу данных.

Мне нужно очистить информацию о логине и пароле, которую я использовал, чтобы запретить следующему человеку, который будет использовать ноутбук, использовать мои логины и пароли. Как я могу это сделать?

Ответы [ 8 ]

305 голосов
/ 03 августа 2009

В другом ответе также упоминается, что с 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.

EDIT:

Обратите внимание, AppData - это скрытая папка. Вам нужно показать скрытые папки в проводнике.

33 голосов
/ 04 июня 2013

Для тех, кто ищет решение SSMS 2012 ... см. Этот ответ:

Удалить кэшированный логин 2012

По сути, в 2012 году вы можете удалить сервер из раскрывающегося списка серверов, который очищает все кэшированные имена входа для этого сервера.

Работает также в версии 17 (сборка 14.x).

25 голосов
/ 07 сентября 2018

В моем сценарии я только хотел удалить определенное имя пользователя / пароль из списка, в котором было много других сохраненных соединений, которые я не хотел забывать. Оказывается, файл SqlStudio.bin, который обсуждают здесь другие, представляет собой двоичную сериализацию .NET класса Microsoft.SqlServer.Management.UserSettings.SqlStudio, которая может быть десериализована, изменена и повторно сериализована для изменения определенных параметров.

Чтобы выполнить удаление определенного имени входа, я создал новое консольное приложение 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);
        }
    }
}
4 голосов
/ 13 января 2014

Для SQL Server Management Studio 2008

  1. Вам нужно перейти C: \ Documents and Settings \% username% \ Application Данные \ Microsoft \ Microsoft SQL Server \ 100 \ Инструменты \ Оболочка

  2. Удалить SqlStudio.bin

3 голосов
/ 08 декабря 2008

Удалить:

C: \ Documents and Settings \% Ваше имя пользователя% \ Application Data \ Microsoft \ Microsoft SQL Server \ 90 \ Tools \ Shell \ mru.dat "

2 голосов
/ 28 мая 2010

В XP файл .mru.dat находится в C: \ Documents and Settings \ Имя \ Данные приложения \ Microsoft \ Microsoft SQL Server \ 90 \ Tools \ ShellSEM

Однако удаление этого ничего не даст.

Чтобы удалить список в XP, вырежьте файл sqlstudio bin из C: \ Documents and Settings \ Имя \ Application Data \ Microsoft \ Microsoft SQL Server \ 100 \ Tools \ Shell и вставьте его на рабочий стол.

Попробуйте SQL

Если это сработало, удалите файл sqlstudio bin с рабочего стола.

Легко:)

1 голос
/ 30 апреля 2019

Это работает для SQL Server Management Studio v18.0

Файл "SqlStudio.bin", похоже, больше не существует. Вместо этого все мои настройки хранятся в этом файле:

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

  • Откройте его в любом текстовом редакторе, таком как Блокнот ++
  • ctrl + f для удаляемого имени пользователя
  • затем удалите весь блок <Element>.......</Element> что его окружает.
0 голосов
/ 24 мая 2019

Как указывали глюки, не более SqlStudio.bin в Microsoft SQL Server Management Studio 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.

...