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

6
이것이 또 다른 질문 일 수는 있지만 제품마다 매우 다를 수 있으므로 닫힐 가능성이 있습니다. 그러나 위 파일에 저장된 정보를 편집해야하는 이유가 있습니까? 저장된 로그인을 제거하고 싶습니다.
Vikas

5
SSMS 2012의 % AppData % \ Microsoft \ SQL Server Management Studio \ 11.0 \ SqlStudio.bin 이 저에게 효과적 이었습니다.
J Bryan Price

3
SQL 2008 R2에서 나를 위해 일했습니다. 이 작업을 수행하기 전에 SQL Studio를 닫았는지 확인하거나 파일을 거의 즉시 다시 만드십시오.
Kyle Heon

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
매우 감사합니다, 매력처럼 일했습니다 어떻게 알아 냈습니까? 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를 다시 시작하여 작동하는지 확인하고 SSql에 의해 SqlStudio.bin이 이미 메모리에로드 된 후 닫히기 전에 다시 작성되었으므로 작동하지 않았습니다. 그런 다음 SSMS를 닫은 채 코드를 실행하고 매력처럼 작동했습니다.
Muhammad Mamoor Khan

1
환상적인 솔루션. 완벽하게 작동합니다. 정확히 전체 빈 파일을 삭제하지 않고 달성하고자하는 결과
Kev Riley

17

이것은 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>주변 의 전체 블록 을 삭제하십시오 .

@gluecks 감사합니다! 너무 많은 다른 게시물은 sqlstudio.bin 파일이 여전히 v18에서 작동하지만 내 경험이 아니라고 제안합니다. 이제 매월 또는 두 달마다 usersettings.xml 파일을 지우는 것이 무엇인지 알아낼 수 있다면. 서버 목록을 다시 입력해야하는 데 너무 지쳤습니다.
PTansey

7

최신 버전의 SQL Server Management Studio를 사용 하여이 작업을 수행하는 간단한 방법이 있습니다 (18.4를 사용하고 있습니다)

  1. "서버에 연결"대화창을 연다
  2. "서버 이름"드롭 다운을 클릭하여 엽니 다.
  3. 키보드에서 아래쪽 화살표를 눌러 서버 이름을 강조 표시하십시오.
  4. 키보드에서 Delete 키를 누릅니다

로그인이 사라졌습니다! dll 또는 bin 파일을 망칠 필요가 없습니다.


6

gluecks는 더 이상 지적 SqlStudio.bin마이크로 소프트 SQL Server 관리 Studio (18) . 나는 또한 이것을 발견 UserSettings.xml했다 C:\Users\userName\AppData\Roaming\Microsoft\SQL Server Management Studio\18.0. 그러나 <Element>자격 증명을 포함하는 제거가 작동하지 않는 것 같습니다. XML 파일을 닫았다가 다시 열면 다시 xml 파일로 돌아옵니다.

알고 보니, 당신이해야 할 첫 번째 SQL Server Management Studio를 닫 편집 후, UserSettings.xml예를 들어, 여러분이 좋아하는 편집기, 비주얼 스튜디오 코드에서 파일을. 이 XML 파일 외에 SSMS 어딘가에 캐시 된 것 같습니다! 그리고 그것은 아닙니다 Control Panel\All Control Panel Items\Credential Manager\Windows Credentials.


4

SQL Server Management Studio 2008의 경우

  1. 당신은 갈 필요가 C를 : \ 문서 및 설정 \ % 사용자 이름 % \ 응용 프로그램 데이터 \ 마이크로 소프트 \ Microsoft SQL Server를 \ 100 개 \ 도구 \ 셸을

  2. SqlStudio.bin 삭제


3

지우다:

C : \ Documents and Settings \ % 사용자 이름 % \ Application Data \ Microsoft \ Microsoft SQL Server \ 90 \ Tools \ Shell \ mru.dat "


1
Windows 7에 MSSSMS2008E를 설치했으며 % LocalAppData % \ Microsoft \ Microsoft SQL Server \ 100 \ Tools \ Shell이 ​​아닌 % AppData % \ Microsoft \ Microsoft SQL Server \ 100 \ Tools \ Shell에도 mru.data가 없습니다. 그러나 Robin Luiten의 답변은 Windows XP와 Windows 7 모두에서 도움이됩니다. 내가
논박하는 한,

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.