How*_*sca 29 sql-server ssms azure azure-sql-database ssms-2016
我做了几十次,但最近刚遇到这个错误.以下是我到达此处的步骤:
炸弹只需要几秒钟,我就会收到错误:
Error SQL72014: .Net SqlClient Data Provider: Msg 33161, Level 15, State 1, Line 1 Database master keys without password are not supported in this version of SQL Server
Error SQL72045: Script execution error. The executed script: CREATE MASTER KEY;
Run Code Online (Sandbox Code Playgroud)
我对同一个数据库进行了相同的处理1.5个月前,任何一切都运行正常......还有其他人遇到过这个吗?我安装了SSDT版本14.0.61021.0 - 不确定是否重要.我也在运行SQL Server 2016 Developer Edition(v13.0.1722.0).
Mar*_*nce 37
我有同样的问题.在与Azure支持人员交谈后,他们发现问题是由于创建了一个空白数据库主密钥来加密审计的存储凭据(审计是可选设置).
请注意,数据库审核设置是从服务器设置继承的.
无论如何,他们想出的工作是:
DROP MASTER KEY命令删除数据库主密钥.然后导出按预期工作.希望Azure能尽快解决这个问题,以便审计和导出可以协同工作.
更新2017年3月21日更好的解决方案来自MS
由于修复程序需要一段时间才能部署,因此他们还建议了一种替代解决方案,它不需要任何其他步骤(例如禁用审核或博客中的步骤)来避免此问题.启用审核后,请更新主密钥并设置密码.为现有主密钥设置密码可以缓解此问题.此外,设置密码不会影响审核,它将继续工作.添加密码的语法如下:
-- execute in the user database
ALTER MASTER KEY ADD ENCRYPTION BY PASSWORD = ‘##############’;
Run Code Online (Sandbox Code Playgroud)
该链接还有一个PowerShell脚本,您可以使用该脚本从.bacpac文件中删除有问题的SQL语句.
How*_*sca 16
好吧,我最终解决此问题的方法是执行以下操作:
在该数据库中运行以下脚本:
ALTER MASTER KEY REGENERATE WITH ENCRYPTION BY PASSWORD = [password here];
Run Code Online (Sandbox Code Playgroud)我没有看到关于此的文档,但显然当您创建Azure SQL数据库时,它会创建一个没有密码的数据库主密钥(DMK),而在SQL Server 2016中,这是不可行的.希望这有助于其他人.
注意:我能够这样做,因为我只希望原始数据库中的数据刷新我的本地开发副本 - 我还没有完全研究它的含义.
Adr*_*Onu 11
你需要:
C:\PS> .\RemoveMasterKey.ps1 -bacpacPath "C:\BacPacs\Test.bacpac
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8569 次 |
| 最近记录: |