SQL Server 2019-服务器主体``sa''在当前安全上下文下无法访问数据库``DB_NAME''

问题描述

我编写了以下存储过程:

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 (将#修改为@)