我正在处理我的sql部署脚本。
我有一个名为“user123”的登录名,我已添加到当前数据库中,但我有一个存储过程将信息记录到mydb中,我需要在mydb中具有user123权限,因此我在mydb中创建了一个具有权限的用户,但是如何编写脚本而不是手动添加该用户。
到目前为止,我有这个,但似乎无法找出如何将其添加到另一个数据库,“mydb”可以硬编码,因为每个服务器上只有一个,但是我无法硬编码当前运行脚本的数据库im
如果不存在(从sys.database_principals中选择*其中name=n'user123')
开始
为登录名[user123]创建用户[user123],默认模式为[dbo]
结束
去吧
这只在当前数据库上运行,如何使它在其他数据库上运行。
例子。。
专用数据
安全
用户123
DB1公司
安全
用户123
我想要一个脚本,将用户添加到当前数据库和“mydb”,而不必手动切换数据库

最佳答案

怎么办:

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

关于sql-server - 将用户脚本编写到特定数据库?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7231647/

10-11 03:09