当我尝试使用SqlPackage部署SQL Server数据库时,出现一个奇怪的错误。
电话是:
SqlPackage.exe /Action:Publish /SourceFile:myDb.dacpac /TargetServerName:myServer /TargetDatabaseName:myDb /OverwriteFiles:True /Diagnostics:True
错误是:
Microsoft.Data.Tools.Diagnostics.Tracer错误:1:检测到错误时 对数据库进行反向工程。严重性:“警告”前缀:”错误 代码:“ 0”消息:权限“ EAES”未被识别并且未被识别 进口的。如果此问题仍然存在,请联系客户支持。 Microsoft.Data.Tools.Diagnostics.Tracer错误:1:检测到错误时 对数据库进行反向工程。严重性:“警告”前缀:”错误 代码:“ 0”消息:权限“ EAES”未被识别并且未被识别 进口的。如果此问题仍然存在,请联系客户支持。 Microsoft.Data.Tools.Diagnostics.Tracer错误:19: Microsoft.SqlServer.Dac.DacServicesException:在执行期间发生错误 部署计划生成。部署无法继续。错误 SQL72018:无法导入权限,但其中一个或多个 源中存在对象。 ---> Microsoft.Data.Tools.Schema.Sql.Deployment.DeploymentFailedException: 对目标数据库建模时发生错误。部署可以 不继续。 在Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeployment.ThrowIfErrors(String 消息,ErrorManager错误,对象类别) 在Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeploymentEndpointServer.OnLoad(ErrorManager 错误,DeploymentEngineContext上下文) 在Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeployment.PrepareModels() 在Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeployment.InitializePlanGeneratator() 在Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeployment.CreateController(Action`1 msgHandler) 在Microsoft.SqlServer.Dac.DacServices.CreateController(SqlDeployment deploymentEngine,ErrorManager,errorManager) ---内部异常堆栈跟踪的结尾--- 初始化部署(失败) Microsoft.Data.Tools.Diagnostics.Tracer信息:0:SqlPackage已完成
当我在Visual Studio数据工具中进行架构比较时,仅更改了一列,但没有权限。当我使用SSMS查找该权限“ EAES”时,找不到它。
此解决方案可以正常工作一段时间。
该权限为'EAES'是什么,或者如何使SqlPackage执行再次成功?
答案 0 :(得分:0)
这是Visual Studio中的错误。参见https://feedback.azure.com/forums/908035-sql-server/suggestions/32896864-grant-execute-any-external-script-not-recognised-b
如果您撤消了在SQL Server中执行R脚本的权限,它将再次起作用
REVOKE EXECUTE ANY EXTERNAL SCRIPT TO [myUser]
答案 1 :(得分:0)
尝试更新您的 SQLPackage.exe,当我这样做时,我的问题就解决了。 我在尝试在 SQL Server 2019 数据库中发布时遇到了这个问题,在 https://docs.microsoft.com/pt-br/sql/tools/sqlpackage/sqlpackage-download?view=sql-server-ver15 中从中获取了最新版本,并且效果很好。