【问题标题】:Can't export SQL Azure database when stored procedure is encrypted加密存储过程时无法导出 SQL Azure 数据库
【发布时间】:2021-04-04 08:37:19
【问题描述】:

我想将我的 SQL Azure 数据库导出到文件 test.bacpac,但我失败了:

在用作数据包一部分的架构中发现一个或多个不受支持的元素。
错误 SQL71564:验证元素 [dbo].[IsMyUserExisted] 时出错:由于脚本主体已加密,因此无法部署元素 [dbo].[IsMyUserExisted]。

问题是,为什么我不能像在 SQL Server 2008、2017 等中那样备份我的数据库(只是备份数据库,然后恢复数据库)。

   "C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\150\SqlPackage.exe" /a:Export /ssn:"servername" /sdn:"databasename" /su:"username" /sp:"passwordhere" /tf:"myfile.bacpac" ExcludeObjectsTypes=StoredProcedures 

ExcludeObjectsTypes=StoredProcedures 属性无效

我也尝试了“/p:ExcludeObjectsTypes=StoredProcedures”,但仍然出现错误。

【问题讨论】:

标签: sql-server azure-sql-database bacpac


【解决方案1】:

Azure SQL 数据库不支持使用 WITH ENCRYPTION 选项来迁移存储过程、用户定义函数、触发器或视图等对象。因此,无法迁移使用该选项编译的对象。您将需要删除 WITH ENCRYPTION 选项。

这意味着 Azure SQL 不支持导出/迁移包含这些加密对象的数据库,我们总是会得到这样的错误:

您必须取消加密此过程,然后备份数据库。数据库恢复后,找到这个存储过程,重新加密。

请参考此博客:https://thomaslarock.com/2013/05/migrate-encrypted-procedures-azure-sql-database/

HTH。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-26
    • 2020-09-30
    • 2019-06-10
    • 2018-11-24
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多