将用户编写到特定数据库?

时间:2011-08-29 14:41:30

标签: sql-server database roles login-script

我正在处理我的SQL部署脚本。

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

到目前为止,我有这个,但似乎无法弄清楚如何将其添加到其他数据库,“MyDB”可以硬编码,因为每个服务器上只有1个,但是我不能硬编码当前数据库im

上运行脚本
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

这只在当前数据库上运行,如何使其与其他数据库运行。

实施例..

MYDB
安全
User123

DB1
安全
User123

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

1 个答案:

答案 0 :(得分:2)

怎么样:

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