在我的演示环境中,我处理了大量的 SQL 数据库。每个数据库都有很多用户,它们链接到服务器上单独的安全->登录。
随着时间的推移,我不断得到许多(如数百个)孤儿 Security->Login ,这些孤儿未链接到任何数据库中的任何用户。
是否可以运行任何 SQL 语句来删除未使用的登录名 - 即没有映射到数据库用户的登录名?
在我的演示环境中,我处理了大量的 SQL 数据库。每个数据库都有很多用户,它们链接到服务器上单独的安全->登录。
随着时间的推移,我不断得到许多(如数百个)孤儿 Security->Login ,这些孤儿未链接到任何数据库中的任何用户。
是否可以运行任何 SQL 语句来删除未使用的登录名 - 即没有映射到数据库用户的登录名?
我建议构建一个 select 语句,将单个数据库 sysusers 表与 master..sysxlogins 联系起来。
您想要探索的一些系统过程是 sp_MShasdbaccess 和 sp_validatelogins。
使用 sp_droplogin(或 Management Studio)
您的问题是否有潜台词,即如何仅删除未链接到数据库用户的登录名?如果是这样,我认为(尽管我会尝试确定) sp_droplogin 只会删除未映射到 db 用户的登录,并且如果它们被映射将失败。
JR