qJa*_*ake 4 sql sql-server sql-server-2005
我有一个类似的设置:
- SQL-2005-SRVR
- 安全
- MYAPP_登录
- 数据库1
- 安全
- MYAPP_USER
- 其他用户
- 数据库2
- 安全
- 其他用户
- 数据库3
- 安全
- MYAPP_USER
- 测试用户
- 数据库4
- 安全
- MYAPP_USER
- 数据库5
- 安全
- 其他用户
- 测试用户
我想弄清楚如何编写一个 SQL 脚本,该脚本将从MYAPP_USER服务器上的所有数据库中删除所有匹配的用户。我不熟悉如何从单个脚本中迭代多个数据库,甚至不熟悉如何查询用户是否存在于该数据库中。此外,我不确定该脚本将从 - master、msdb、运行什么上下文/目录model?
在上面的示例中Database1,Database3、 和Database4都将MYAPP_USER删除其用户名。
我还需要从服务器本身删除登录名,但我知道这就像DROP LOGIN MYAPP_LOGIN.
该脚本将以服务器管理员身份运行,因此权限不是问题。
我将如何删除每个数据库中与名称匹配的所有用户MYAPP_USER?
小智 7
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
Run Code Online (Sandbox Code Playgroud)
容易多了。你可以知道它在哪里起作用。