我有一个有很多数据库的 SQL Server 2008R2。
该过程是创建登录名并将用户映射到数据库。
大多数这些数据库现在已从服务器中删除,但最终有很多与用户关联的登录名映射到不存在的数据库。
有没有一种批量方法可以摆脱这些登录名及其关联用户?
谢谢
我有一个有很多数据库的 SQL Server 2008R2。
该过程是创建登录名并将用户映射到数据库。
大多数这些数据库现在已从服务器中删除,但最终有很多与用户关联的登录名映射到不存在的数据库。
有没有一种批量方法可以摆脱这些登录名及其关联用户?
谢谢
首先,孤立用户是一个术语,用于定义与不存在的登录关联的数据库用户。根据您的解释,您和您的登录信息并非如此。
如果数据库已从服务器中删除,则不会有孤立用户,因为它们将随数据库一起消失,将会有没有关联用户且可能未被使用的登录名。
要查找这些没有数据库映射的登录名,请查看此处!
但是,要摆脱这些没有映射的登录,您需要确保没有活动,您可以尝试多种方法,例如扩展事件、探查器、服务器审核等,以捕获所有登录活动、解析登录事件并检测未使用的登录. 扩展事件将是最好的事件,因为它更快并且需要更少的资源。我遇到了同样的问题,并在几年前使用扩展事件开发了一个解决方案。该脚本创建一个 SQL 代理作业,该作业动态创建所有必要的东西。用于捕获服务器上所有登录事件的扩展事件将事件写入 C 驱动器上的文件,然后由作业解析该文件并将所有内容记录到汇总表中。如果你愿意,我可以上传脚本,但不幸的是,目前还没有关于它的文档或博客文章。