Удаление списка сохраненных логинов и паролей в SQL Server Management Studio

StackOverflow https://stackoverflow.com/questions/349668

Вопрос

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

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

Нет правильного решения

Другие советы

В другом ответе здесь также упоминается, что с 2012 года вы можете удалить Remove cached login через Как удалить кэшированные имена серверов из диалогового окна Подключения к серверу?.Только что подтвердил, что это удаление в списке MRU отлично работает в 2016 и 2017 годах.

Студия управления SQL Server 2017 удалите файл C:\Users\%username%\AppData\Roaming\Microsoft\SQL Server Management Studio\14.0\SqlStudio.bin

Студия управления SQL Server 2016 удалите файл C:\Users\%username%\AppData\Roaming\Microsoft\SQL Server Management Studio\13.0\SqlStudio.bin

Студия управления SQL Server 2014 удалите файл C:\Users\%username%\AppData\Roaming\Microsoft\SQL Server Management Studio\12.0\SqlStudio.bin

Студия управления SQL Server 2012 удалите файл C:\Users\%username%\AppData\Roaming\Microsoft\SQL Server Management Studio\11.0\SqlStudio.bin

Студия управления SQL Server 2008 удалите файл C:\Users\%username%\AppData\Roaming\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.bin

Студия управления SQL Server 2005 удалите файл – тот же ответ, что и выше, но путь к Vista.C:\Users\%username%\AppData\Roaming\Microsoft\Microsoft SQL Server\90\Tools\Shell\mru.dat

Это пути профиля для Vista / 7 / 8.

Редактировать:

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

Редактировать:Вы можете просто нажать удалить из выпадающего списка Сервер / Имя пользователя (подтверждено, что работает для SSMS версии 18.0).Оригинальный источник из https://blog.sqlauthority.com/2013/04/17/sql-server-remove-cached-login-from-ssms-connect-dialog-sql-in-sixty-seconds-049/ в котором упоминалось, что эта функция доступна с 2012 года!

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

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

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

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

В моем сценарии я только хотел удалить определенное имя пользователя / пароль из списка, в котором было много других сохраненных подключений, которые я не хотел забывать.Оказывается, что 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);
        }
    }
}

Для SQL Server Management Studio 2008

  1. Тебе нужно идти C:\Documents и настройки\%имя пользователя%\Приложение Данные\Microsoft\Microsoft SQL Server\100\Инструменты\ оболочка

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

Удалить:

C:\Documents и настройки\%Ваше имя пользователя%\Данные приложения\Microsoft\ Microsoft SQL Server\90 ools\Shell\mru.dat"

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

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

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

Попробуйте SQL

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

Легко :)

Это работает для SQL Server Management Studio версии 18.0

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

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

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

Как указал глюкс, не более 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.Я предполагаю, что он кэширован где-то в SSMS, помимо этого xml-файла ?!И это не включено Control Panel\All Control Panel Items\Credential Manager\Windows Credentials.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top