微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

存储过程加密后无法导出 SQL Azure 数据库

如何解决存储过程加密后无法导出 SQL Azure 数据库

我想将我的 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”,但仍然出现错误

解决方法

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

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

您必须解密此过程,然后备份数据库。数据库恢复后,找到这个存储过程,再次加密。

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

HTH。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。