我的服务器上有几个数据库,每个数据库都有自己的用户。现在我需要查找并删除所有未映射到任何数据库中任何用户的登录名。但我也看到,登录可能没有映射到任何用户,但他们能够执行一些操作,因为他们具有像 sysadmin 这样的角色。因此,在这种情况下,这些登录名正在使用中。我想知道如何才能找到真正无用的登录名,而这些登录名只是被孤立而没有任何用处?
谢谢
我的服务器上有几个数据库,每个数据库都有自己的用户。现在我需要查找并删除所有未映射到任何数据库中任何用户的登录名。但我也看到,登录可能没有映射到任何用户,但他们能够执行一些操作,因为他们具有像 sysadmin 这样的角色。因此,在这种情况下,这些登录名正在使用中。我想知道如何才能找到真正无用的登录名,而这些登录名只是被孤立而没有任何用处?
谢谢
我有几年前做的很丑的东西。我只需要实现一个动态 SQL 来自动执行这个“选择”。好吧,这里是:
首先创建这个报告表:
然后执行此查询并运行它:
然后你可以拥有:
和
您的情况与此相同。
但是,以下查询可帮助您获取未映射到数据库中任何用户且未分配给服务器角色的登录名,您可以注释 (--) 子句中的最后一个谓词 (
and (r.name = 'public' or r.name is null )
)where
以列出所有登录名及其角色名称未与任何数据库用户映射,并FixCommand
从结果中为选定的登录选择列值 (T-SQL)。