SQL创建用户登录不能从一个数据库为其他数据库工作

时间:2015-01-08 10:19:32

标签: sql-server database

我在同一台服务器上有两个数据库,db1和db2。 我在db1上有一个表名为table table1,table2在第二个数据库db2中 用户登录db1但不登录db2。 我的应用程序在table1中插入记录,我必须在第二个数据库的table2中插入相同的记录。

现在,由于用户无法访问该数据库,因此我首先尝试创建用户登录。 但是执行存储过程,但它不会创建用户登录。我的存储过程在db1中。

    alter procedure CreateUserLogin @userid char(35)
as
declare @s varchar(100)    
IF NOT EXISTS (SELECT * FROM db2.sys.database_principals WHERE name = @userid)
BEGIN

    set @s='use db2 CREATE USER '+ltrim(rtrim(@userid))+' FROM LOGIN '+ltrim(rtrim(@userid))+''
    set @s=@s + 'Exec sp_addrolemember Role1,'+ ltrim(rtrim(@userid))
    exec (@s) 
END;

1 个答案:

答案 0 :(得分:0)

添加+ CHAR(13)后

set @s='USE [db2]'+ CHAR(13) set @s=@s+' CREATE USER '+ltrim(rtrim(@userid))+' FROM LOGIN '+ltrim(rtrim(@userid))+'' set @s=@s + ' Exec sp_addrolemember role1,'+ ltrim(rtrim(@userid))

不知道这可能是个问题。