gpt4 book ai didi

sql - 如何从与给定名称匹配的服务器上的所有数据库中删除特定安全用户?

转载 作者:行者123 更新时间:2023-12-04 21:03:02 35 4
gpt4 key购买 nike

我有一个类似的设置:

  • SQL-2005-SRVR
    • Security
      • MYAPP_LOGIN
    • Database1
      • Security
        • MYAPP_USER
        • OTHERUSER
    • Database2
      • Security
        • OTHERUSER
    • Database3
      • Security
        • MYAPP_USER
        • TESTUSER
    • Database4
      • Security
        • MYAPP_USER
    • Database5
      • Security
        • OTHERUSER
        • TESTUSER


我想弄清楚如何编写一个 SQL 脚本来删除所有匹配 MYAPP_USER 的用户从服务器上的所有数据库。我不熟悉如何从单个脚本中迭代多个数据库,甚至不熟悉如何查询用户是否存在于该数据库中。此外,我不确定该脚本将从哪个上下文/目录运行 - master , msdb , model ?

在上面的例子中, Database1 , Database3 , 和 Database4所有的用户都会被命名为 MYAPP_USER掉了。

我还需要从服务器本身删除登录名,但我知道这很简单 DROP LOGIN MYAPP_LOGIN .

该脚本将以服务器管理员身份运行,因此权限不是问题。

我将如何删除每个数据库中与名称匹配的所有用户 MYAPP_USER ?

最佳答案

EXECUTE master.sys.sp_MSforeachdb 'USE [?]; 
begin try
drop user [<put a name in here>]
print ''did drop at ?''
end try
begin catch
print ''did not drop at ?''
end catch
'
GO

容易多了。你可以知道它在哪里起作用。

关于sql - 如何从与给定名称匹配的服务器上的所有数据库中删除特定安全用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25531938/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com