Динамическое маскирование данных в базе данных SQL Azure не сохраняется для одного столбца - PullRequest
1 голос
/ 26 сентября 2019

Я применяю динамическое маскирование данных к моей базе данных SQL Azure.Я применил маскирование ко всем нужным полям, кроме одного.Таблица AspNetUsers, а столбец, который не будет сохранен, - NormalizedUserName.Имя пользователя в нашем случае - это адрес электронной почты пользователя.Поля UserName, Email и NormalizedEmail сохраняются с правильной маской - Email (aXXX@XXXX.com).Все четыре поля имеют одинаковый тип данных - (nvarchar, null) Ошибка, которую я получаю при попытке применить одну и ту же маску к полю NormalizedUserName:

Не удалось сохранить настройки динамического маскирования данных для базы данных: xxxxxxxxxx-auth.

ErrorMessage: не удалось обновить правило маскирования данных dbo_AspNetUsers_NormalizedUserName - properties -

{
    "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":""
}

Есть идеи о том, почему происходит эта ошибка, или где я могу найти дополнительные сведения?

1 Ответ

0 голосов
/ 27 сентября 2019

Оказывается, проблема в том, что в поле NormalizedUserName есть уникальный индекс.В поле Email есть неуникальный индекс, который не вызывает проблем.Решение состоит в том, чтобы удалить индекс, сохранить правило маски данных, а затем заново создать индекс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...