使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

症状

请考虑以下情况:

  • SQL Server 2016 和 2017 中具有 SQL CLR 函数。

  • CLR 函数通过模拟调用(例如通过调用 EXECUTE AS 语句)调用 Transact-SQL 语句。

在这种情况下,执行失败,并收到以下错误消息:

Msg 6522,级别 16,状态 1,过程 PrcedureName,第 0 行 [Batch Start LineNumber]

执行用户定义的例程或聚合“ProcedureName”期间发生.NET Framework错误:

System.Data.SqlClient.SqlException:服务器主体“LoginName”无法访问当前安全上下文下的数据库“DatabaseName”。

解决方法

此修补程序包含在 2017 SQL Server 累积更新 1 中。

2016 SQL Server Service Pack 信息

以下 service Pack 中修复了此问题,适用于SQL Server:

       Service Pack 2 for SQL Server 2016

关于 SQL Server 2017 版本

SQL Server 2017 的每个新版本都包含上一版本中的所有修补程序和安全修补程序。 建议安装 SQL Server 2017 的最新版本

Service Pack 具有累积性。 每个新 Service Pack 除了包含所有新修复程序外,还包含以前 Service Pack 中的所有修复程序。 建议为该服务包应用最新的 Service Pack 和最新的累积更新。 在安装最新的 Service Pack 之前,不需要安装以前的 Service Pack。 使用以下文章中的表 1 查找有关最新 Service Pack 和最新累积更新的详细信息。

如何确定SQL Server及其组件的版本、版本和更新级别

状态

Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。

参考

了解 Microsoft 用于描述软件更新 的术语

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×