SQL Server 2016 RC2中的策略管理中的错误 [英] Bug in Policy Management in SQL Server 2016 RC2

查看:57
本文介绍了SQL Server 2016 RC2中的策略管理中的错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果使用构面存储过程构建策略并按需或按计划评估此策略(在更改时:阻止似乎有效),则策略管理中的SQL Server 2016 RC2中似乎存在错误。我使用命名策略进行测试,
检查每个存储的过程是否以前缀usp开头。 (策略检查条件是@NAME LIKE'usp%')。

There seems to be a bug in SQL Server 2016 RC2 in the Policy Management if you build a policy using the facet Stored Procedure and evaluating this policy on demand or on schedule (on change: prevent seems to work). I used a Naming Policy for the test, that checks if every stored procedure begins with the prefix usp. (Policy check condition was @NAME LIKE 'usp%').

它在SQL Server 2014中没有任何问题。任何想法如何解决这个问题?

It works without any problems in SQL Server 2014. Any idea how to solve this?

以下是历史消息,它从不检查任何存储过程:

Here is the history message, it never checks any stored procedure:

消息

System.FormatException:ImplementationType.TransactSql不是ImplementationType的有效值。 ---> System.ArgumentException:找不到请求值'ImplementationType.TransactSql'。

    at System.Enum.EnumResult.SetFailure(ParseFailureKind failure,String failureMessageID,Object failureMessageFormatArgument)

    at System.Enum.TryParseEnum(Type enumType,String value,Boolean ignoreCase,EnumResult& parseResult)

    at System.Enum.Parse(Type enumType,String value,Boolean ignoreCase)

    at System.ComponentModel.EnumConverter.ConvertFrom(ITypeDescriptorContext context,CultureInfo culture,Object value)

    ---内部异常堆栈跟踪结束---

    at System.ComponentModel.EnumConverter.ConvertFrom(ITypeDescriptorContext context,CultureInfo culture,Object value)

    at Microsoft.SqlServer.Management.Sdk.Sfc.Metadata.SfcMetadataDiscovery.ConvertDefaultValue(String defaultValueAsString,Type propertyType)

    at Microsoft.SqlServer.Management.Sdk.Sfc.Metadata.SfcMetadataDiscovery.InternalLoadTypeRelationsInformationThroughReflection(Type sfcType)

    at Microsoft.SqlServer.Management.Sdk.Sfc.Metadata.SfcMetadataDiscovery.GetTypeRelations(Type sfcType)

    at Microsoft.SqlServer.Management.Sdk.Sfc.Metadata.SfcMetadataDiscovery.get_Relations()

    at Microsoft.SqlServer.Management.Sdk.Sfc.SfcSqlPathUtilities.ConvertUrnToPath(Urn urn)

    at Microsoft.SqlServer.Management.Dmf.ConditionEvaluationEventArgs..ctor(FacetEvaluationContext facetEvaluationContext,String facetType,Object target,Boolean evaluationResult,Boolean isConfigurable,String configMessage,Exception exception)

    at Microsoft.SqlServer.Management.Dmf.Condition.Evaluate(Object target,AdHocPolicyEvaluationMode evaluationMode)

    at Microsoft.SqlServer.Management.Dmf.ObjectSet.CalculateTargets(IEnumerable objectSet,Condition condition,AdHocPolicyEvaluationMode evaluationMode,Object []& conforming,TargetEvaluation []&违规)

    at Microsoft.SqlServer.Management.Dmf.ObjectSet.CalculateTargets(SqlStoreConnection targetConnection,Condition condition,AdHocPolicyEvaluationMode evaluationMode,String policyCategory,Object []& conforming,TargetEvaluation []&违规)

  ;   at Microsoft.SqlServer.Management.Dmf.Policy.EvaluatePolicyUsingConnections(AdHocPolicyEvaluationMode evaluationMode,SfcQueryExpression targetQueryExpression,Int64& historyId,ISfcConnection [] targetConnections

Message
System.FormatException: ImplementationType.TransactSql is not a valid value for ImplementationType. ---> System.ArgumentException: Requested value 'ImplementationType.TransactSql' was not found.
   at System.Enum.EnumResult.SetFailure(ParseFailureKind failure, String failureMessageID, Object failureMessageFormatArgument)
   at System.Enum.TryParseEnum(Type enumType, String value, Boolean ignoreCase, EnumResult& parseResult)
   at System.Enum.Parse(Type enumType, String value, Boolean ignoreCase)
   at System.ComponentModel.EnumConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)
   --- End of inner exception stack trace ---
   at System.ComponentModel.EnumConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)
   at Microsoft.SqlServer.Management.Sdk.Sfc.Metadata.SfcMetadataDiscovery.ConvertDefaultValue(String defaultValueAsString, Type propertyType)
   at Microsoft.SqlServer.Management.Sdk.Sfc.Metadata.SfcMetadataDiscovery.InternalLoadTypeRelationsInformationThroughReflection(Type sfcType)
   at Microsoft.SqlServer.Management.Sdk.Sfc.Metadata.SfcMetadataDiscovery.GetTypeRelations(Type sfcType)
   at Microsoft.SqlServer.Management.Sdk.Sfc.Metadata.SfcMetadataDiscovery.get_Relations()
   at Microsoft.SqlServer.Management.Sdk.Sfc.SfcSqlPathUtilities.ConvertUrnToPath(Urn urn)
   at Microsoft.SqlServer.Management.Dmf.ConditionEvaluationEventArgs..ctor(FacetEvaluationContext facetEvaluationContext, String facetType, Object target, Boolean evaluationResult, Boolean isConfigurable, String configMessage, Exception exception)
   at Microsoft.SqlServer.Management.Dmf.Condition.Evaluate(Object target, AdHocPolicyEvaluationMode evaluationMode)
   at Microsoft.SqlServer.Management.Dmf.ObjectSet.CalculateTargets(IEnumerable objectSet, Condition condition, AdHocPolicyEvaluationMode evaluationMode, Object[]& conforming, TargetEvaluation[]& violating)
   at Microsoft.SqlServer.Management.Dmf.ObjectSet.CalculateTargets(SqlStoreConnection targetConnection, Condition condition, AdHocPolicyEvaluationMode evaluationMode, String policyCategory, Object[]& conforming, TargetEvaluation[]& violating)
   at Microsoft.SqlServer.Management.Dmf.Policy.EvaluatePolicyUsingConnections(AdHocPolicyEvaluationMode evaluationMode, SfcQueryExpression targetQueryExpression, Int64& historyId, ISfcConnection[] targetConnections

推荐答案

我测试了这个并且我能够重现这个问题。但是,问题似乎在SSMS中,而不是SQL Server本身。就是说,只要我无论我是针对SQL 2016还是SQL 2014,评估来自SSMS 2016的策略都会失败。另一方面,我是
能够根据SSMS 2012的SQL 2016 RC2上的策略进行评估。

I tested this and I was able to reproduce the issue. Howeer, the issue seems to be in SSMS, not SQL Server as such. To wit, as long as I evaluate the policy from SSMS 2016 it fails no matter I am targetting SQL 2016 or SQL 2014. On the other hand, I was able to evaluate by policy on SQL 2016 RC2 from SSMS 2012.

我建议你提交一份关于

的错误报告 http:/ /connect.microsoft.com/SqlServer/Feedback

I would suggest that you file a bug report on
http://connect.microsoft.com/SqlServer/Feedback


这篇关于SQL Server 2016 RC2中的策略管理中的错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆