SQL Server 到 Azure SQL:应用程序的迁移,xp_msver 过程

问题描述 投票:0回答:1

我们目前在尝试将应用程序从 SQL Server 迁移到 Azure SQL 时遇到问题。

起点

该应用程序是在 2010 年至今使用 Delphi 开发的。底层数据库已经迁移到 Microsoft SQL Server 2022 (16.0.4003.1),没有任何问题。

现在我们要将数据库提升到 Azure SQL。所以我们创建了一个

.bacpac
并将其恢复到 Azure SQL。所有表、视图、函数、过程均已成功创建并恢复数据。

我们希望最小化 SQL Server 管理,因此 Azure SQL。

问题

启动应用程序时,它会尝试执行默认情况下 Azure SQL 不存在的

master.xp_msver
。它会导致错误,请参阅此问题末尾链接的第一个屏幕截图。

在 pastebin 上创建程序声明的链接

方法

我们使用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 或您自己的权限。

我的问题

你知道如何绕过这个问题吗?我找不到关于该主题的任何信息。

[微软没有在限制中列出问题

链接

想法

@siggemannen:

GRANT EXECUTE ON OBJECT::xp_msver TO USERNAME

不能授予、拒绝或撤销对 sa、dbo、实体所有者、information_schema、sys 或您自己的权限。

CREATE SYNONYM [master].[dbo].[xp_msver] FOR [USERSCHEMA].[dbo].[xp_msver]
[40515] [S0001]:此版本的 SQL Server 不支持对“master.dbo.xp_msver”中的数据库和/或服务器名称的引用。

@琼脂123:

GRANT EXECUTE ON OBJECT::xp_msver TO PUBLIC
GRANT EXECUTE ON xp_msver TO PUBLIC
&
GRANT EXECUTE ON master.dbo.xp_msver TO PUBLIC

SQL-Fehler [15151] [S0001]: 找不到对象 'xp_msver',因为它不存在或您没有权限。

sql sql-server azure-sql-database database-migration
1个回答
1
投票

我不确定帽子

xp_msver
是Azure SQL数据库的一部分。

原始文档

xp_msver
只是本地SQL Server的一部分:

Eitan Blumin 有一个查询,您可以使用 (VA2033) 来授予权限:

,('xp_msver', 'GRANT', 'public', 'dbo', 'R')

编辑: 对我来说,您如何能够将 Delphi 应用程序从 2000 年初迁移到 SQL Server 2022,然后迁移到 Azure SQL 数据库,这对我来说是个谜。

您是否检查过与数据迁移助手的兼容性?

您是否检查过与数据库实验助手的工作负载兼容性?

© www.soinside.com 2019 - 2024. All rights reserved.