【问题标题】:Azure SQL Database Dynamic Data Masking won't save for one columnAzure SQL 数据库动态数据屏蔽不会保存一列
【发布时间】:2019-09-26 14:04:58
【问题描述】:

我正在将动态数据屏蔽应用到我的 Azure SQL 数据库。我已经对我需要的所有字段应用了遮罩,除了一个。该表是 AspNetUsers,不会保存的列是 NormalizedUserName。在我们的例子中,用户名是用户的电子邮件地址。 UserName、Email 和 NormalizedEmail 字段均使用正确的掩码保存 - 电子邮件 (aXXX@XXXX.com)。所有四个字段都是相同的数据类型 - (nvarchar, null) 当我尝试将相同的掩码应用于 NormalizedUserName 字段时出现的错误是

未能保存数据库的动态数据屏蔽设置:xxxxxxxxxx-auth。

ErrorMessage:无法更新数据屏蔽规则 dbo_AspNetUsers_NormalizedUserName - 属性 -

{
    "id":"dbo_AspNetUsers_NormalizedUserName",
    "resourceId":"/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/XXXXXXXXX-Development/providers/Microsoft.Sql/servers/xxxxxxxxxx-sql/databases/xxxxxxxxxx-auth",
    "schemaName":"dbo",
    "tableName":"AspNetUsers",
    "columnName":"NormalizedUserName",
    "maskingFunction":"Email",
    "aliasName":"",
    "numberFrom":"0",
    "numberTo":"0",
    "prefixSize":"0",
    "suffixSize":"0",
    "replacementString":""
}

关于为什么会发生此错误的任何想法,或者我可以在哪里查找更多详细信息?

【问题讨论】:

    标签: azure azure-sql-database


    【解决方案1】:

    事实证明,问题在于 NormalizedUserName 字段上存在唯一索引。电子邮件字段上有一个非唯一索引,这不会导致问题。解决方法是删除索引,保存数据屏蔽规则,然后重新创建索引。

    【讨论】:

    • 您可以将其标记为答案。这可能对其他社区成员有益。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多