如何解决存储过程加密后无法导出 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 不支持导出/迁移包含这些加密对象的数据库,我们总是会得到这样的错误:
您必须解密此过程,然后备份数据库。数据库恢复后,找到这个存储过程,再次加密。
请参考此博客:https://thomaslarock.com/2013/05/migrate-encrypted-procedures-azure-sql-database/
HTH。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。