1

我正在编写我的 SQL 部署脚本。

我有一个名为“User123”的登录名,我已经添加到我当前的数据库中,但是我有一个将信息记录到 MyDB 的存储过程,我需要 MyDB 的 User123 权限所以我在 MyDB 上创建了一个具有权限的用户,但是我如何编写脚本这而不是手动添加用户..

到目前为止我有这个,但似乎无法弄清楚如何将它添加到另一个数据库,“MyDB”可以硬编码,因为每台服务器上只有 1 个,但是我不能硬编码当前正在运行脚本的数据库

如果不存在(SELECT * FROM sys.database_principals WHERE name = N'User123')
开始
   使用 DEFAULT_SCHEMA=[dbo] 为登录 [User123] 创建用户 [User123]
结尾
去

这仅在当前数据库上运行,我如何使其针对其他数据库运行。

例子..

MyDB
  安全
   用户 123

DB1
  安全
   用户 123

我想要一个将用户添加到当前数据库和“MyDB”的脚本,而无需手动切换数据库

4

1 回答 1

1

关于什么:

USE MyDB
IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'User123')
BEGIN
   CREATE USER [User123] FOR LOGIN [User123] WITH DEFAULT_SCHEMA=[dbo]
END
GO

USE DB1
IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'User123')
BEGIN
   CREATE USER [User123] FOR LOGIN [User123] WITH DEFAULT_SCHEMA=[dbo]
END
GO
于 2011-12-20T23:09:16.593 回答