当前位置:  开发笔记 > 编程语言 > 正文

删除SQL Server Management Studio中记住的登录名和密码列表

如何解决《删除SQLServerManagementStudio中记住的登录名和密码列表》经验,为你挑选了4个好方法。

我最近使用了我公司的备用笔记本电脑(一般用户设置),而我的维修工作正在进行中.登录数据库时,我检查了SQL Server Management Studio中的"记住密码"选项.

我需要清除我用来阻止下一个使用笔记本电脑的人使用我的登录名和密码的登录名和密码信息.我怎样才能做到这一点?



1> Robin Luiten..:

此处的另一个答案还提到自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是一个隐藏文件夹.您需要在资源管理器中显示隐藏的文件夹.


"%AppData%\ Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.bin"
+1谢谢!删除`C:\ Users \%username%\ AppData\Roaming\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.bin`在Win7中为我工作.
可能这可能是另一个问题,但我担心它可能会关闭,因为它可能是非常具体的产品.但有没有为什么要编辑存储在上述文件中的信息?我想删除一些已保存的登录信息.
**%AppData%\ Microsoft\SQL Server Management Studio\11.0\SqlStudio.bin**for SSMS 2012为我工作.
使用SQL 2008 R2为我工作.确保在执行此操作之前关闭SQL Studio,或者几乎立即重新创建文件.
确保在删除之前关闭SQL Server Management Studio,否则将使用凭据重新创建文件EDIT:如同@KyleHeon所说

2> Edyn..:

对于那些寻找SSMS 2012解决方案的人来说......看到这个答案:

删除缓存登录2012

实际上,在2012年,您可以从服务器列表下拉列表中删除服务器,该下拉列表清除该服务器的所有缓存登录.


请注意,尽管此答案中的链接标题为"删除缓存登录2012",但它链接到的答案是关于如何删除缓存的_server name_,而不是登录.我没有仔细阅读该链接的答案,并尝试从登录下拉列表中删除单个登录.这不起作用.它仅在从"服务器名称"下拉列表中删除服务器名称时才有效.除了删除服务器名称外,它还将删除该服务器名称的所有缓存登录名; 您不能只删除一次登录,而是保留该服务器的其他登录.
2014年用户应该使用这个!我正在使用SSMS 2014,我没有SqlStudio.bin(参见最佳答案),但我按照这个答案中的链接进行操作(并且更容易).

3> Neil..:

在我的场景中,我只想从列表中删除一个特定的用户名/密码,该列表中包含许多其他保存的连接,我不想忘记.事实证明,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);
        }
    }
}


非常感谢,您像一个迷人的人物。您是如何找到的:1)该文件是Microsoft.SqlServer.Management.UserSettings.SqlStudio类的.NET二进制序列化; 2)对名称空间的引用位于dll中Microsoft.SqlServer.Management.UserSettings.dll以及如何找到其位置
@DrManhattan如果将一个非常简单的.NET类进行二进制序列化以归档并在文本编辑器中打开它,您将看到二进制数据和文本的混合。某些文本将是您字符串的值(如果您在序列化的类中有任何值)。但是,文件的开头将是有关已序列化的根类型及其来源的程序集的元数据。打开您的SqlStudio.bin文件,您将同时看到..UserSettings和..UserSettings.SqlStudio。从那里很容易在与`ssms.exe`相同的目录中找到`..UserSettings.dll`,其中包含名称空间和类。

4> 小智..:

这适用于SQL Server Management Studio v18.0

文件“ SqlStudio.bin”似乎不再存在。相反,我的设置全部存储在此文件中:

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

在记事本等任何Texteditor中打开它

ctrl + f用于删除用户名

然后删除其.......周围的整个块。

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有