问题描述
我编写了以下存储过程:
CREATE PROCEDURE dbo.usp_DEMO
@LOGINSQL VARCHAR(30),@DBNAME VARCHAR(40)
WITH EXECUTE AS owner
AS
DECLARE @SQL NVARCHAR(1000)
SET @SQL = 'USE'
SET @SQL = @SQL + ' ' + @DBNAME + ' ' + ' CREATE USER ' + ' '
+ @LOGINSQL + ' ' + ' FOR LOGIN ' + ' ' + @LOGINSQL + ' '
+ ' ALTER ROLE [DB_OWNER] ADD MEMBER ' + ' '
+ @LOGINSQL
EXEC sp_executesql @SQL
像这样运行:
use master
go
exec usp_DEMO '<LOGIN>','<DATABASE>'
我正在从SQL Server 2019 STD版(RTM-CU6)(KB4563110)中的Master
运行,并且出现此错误:
916消息,第14级,州2,第14行
服务器主体“”在当前安全上下文下无法访问数据库“ ”。
该想法是使用存储过程将登录名映射到数据库并赋予db_owner
角色。
任何想法我该如何解决该错误?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)