我们目前在尝试将遗留应用程序从 SQL Server 迁移到 Azure SQL 时遇到问题。
起点
该应用程序是在 2000-2010 年间使用 Delphi 开发的。底层数据库已经迁移到 Microsoft SQL Server 2022 (16.0.4003.1),没有任何问题。
现在我们要将数据库提升到 Azure SQL。所以我们创建了一个
.bacpac
并将其恢复到 Azure SQL。所有表、视图、函数、过程均已成功创建并恢复数据。
我们希望最小化 SQL Server 管理,因此 Azure SQL。
问题
启动应用程序时,它会尝试执行默认情况下 Azure SQL 不存在的
master.xp_msver
。它会导致错误,请参阅此问题末尾链接的第一个屏幕截图。
方法
我们使用this question中的提示创建了程序。它的创建! (见下面的第二张截图)
用户(管理员用户)不知何故缺乏执行该功能的权限。 (见下面的第三张截图)。
EXEC master.dbo.xp_msver;
消息 229,级别 14,状态 5,过程 master.dbo.xp_msver,第 1 行 [批处理起始行 0]
对象“xp_msver”、数据库“master”、架构“dbo”的执行权限被拒绝。
尝试授予权限时会导致错误:
USE master;
GRANT EXECUTE TO USERNAME;
不能授予、拒绝或撤销对 sa、dbo、实体所有者、information_schema、sys 或您自己的权限。
我的问题
你知道如何绕过这个问题吗?我找不到关于该主题的任何信息。
[微软没有在限制中列出问题
链接