【发布时间】:2011-11-06 02:16:48
【问题描述】:
我正在编写我的 SQL 部署脚本。
我有一个名为“User123”的登录名,我已添加到我当前的数据库中,但我有一个将信息记录到 MyDB 的存储过程,我需要 MyDB 的 User123 权限,所以我在 MyDB 上创建了一个具有权限的用户,但是如何我是否要编写脚本而不是手动添加用户..
到目前为止我有这个,但似乎无法弄清楚如何将它添加到另一个数据库,“MyDB”可以硬编码,因为每台服务器上只有 1 个,但是我不能硬编码当前数据库我运行脚本
如果不存在(SELECT * FROM sys.database_principals WHERE name = N'User123') 开始 使用 DEFAULT_SCHEMA=[dbo] 为登录 [User123] 创建用户 [User123] 结尾 走这只能在当前数据库上运行,我如何让它在其他数据库上运行。
例子..
我的数据库
安全
用户123
DB1
安全
用户123
我想要一个将用户添加到当前数据库和“MyDB”的脚本,而无需手动切换数据库
【问题讨论】:
-
我通常使用 INSERT INTO sys.database_pricipals WHERE name=N'user123' 只是将插入插入行两次,每个数据库一次?也许我误解了这个问题?
-
@JohnnyCraig:同样的 USE
是否仍然有用?或者至少 INSERT 必须是完全合格的 - 即。 INSERT INTO MyDB.sys.database_principals... 但问题是,当您使用 INSERT 方法时,是否所有字段都已正确设置。你验证了吗?
标签: sql-server database roles login-script