Поделиться через


Безопасность на уровне объекта

Применимо к: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Безопасность модели данных начинается с эффективной реализации ролей и фильтров на уровне строк для определения разрешений пользователей на объекты и данные модели данных. Для табличных моделей 1400 и более поздних версий можно также определить безопасность на уровне объектов (OLS), которая включает безопасность на уровне таблицы и безопасность на уровне столбцов в объекте Role. При настройке данные таблицы и столбца защищены вместе с метаданными, чтобы предотвратить обнаружение такого объекта злоумышленником.

OLS можно настроить с помощью табличного редактора с открытым исходным кодом, языка сценариев табличных моделей (TMSL) или табличнойобъектной модели (TOM).

Безопасность на уровне таблицы

С помощью безопасности на уровне таблицы можно не только ограничить доступ к данным таблицы, но и метаданным имени конфиденциальной таблицы. Задайте для свойства metadataPermission класса tablePermissions в объекте Roleзначение none.

В этом примере свойство metadataPermission класса tablePermissions для таблицы Product установлено в "none".

"roles": [
  {
    "name": "Users",
    "description": "All allowed users to query the model",
    "modelPermission": "read",
    "tablePermissions": [
      {
        "name": "Product",
        "metadataPermission": "none"
      }
    ]
  }

Безопасность на уровне столбцов

Аналогично защите на уровне таблицы, защита на уровне столбцов позволяет не только ограничить доступ к данным столбца, но и к метаданным названий конфиденциальных столбцов. Задайте свойству metadataPermission класса columnPermissions в объекте Roleзначение none.

В этом примере свойство metadataPermission класса columnPermissions для столбца Base Rate в таблице Employees имеет значение "нет".

"roles": [
  {
    "name": "Users",
    "description": "All allowed users to query the model",
    "modelPermission": "read",
    "tablePermissions": [
      {
        "name": "Employee",
        "columnPermissions": [
          {
            "name": "Base Rate",
            "metadataPermission": "none"
          }
        ]
      }
    ]
  }

Restrictions

  • Безопасность на уровне таблицы не может быть задана для модели, если она нарушает цепочку связей. Ошибка создается во время разработки. Например, если между таблицами A и B, и B и C есть связи, вы не можете обезопасить таблицу B. Если таблица B обезопасена, запрос к таблице A не может транзитивно переходить по связям между таблицей A и B, а также B и C. В этом случае можно настроить отдельную связь между таблицами A и C.

    Безопасность на уровне таблицы

  • Безопасность на уровне строк и безопасность на уровне объектов не могут быть объединены из разных ролей, так как она может привести к непреднамеренного доступа к защищенным данным. Ошибка создается во время запроса для пользователей, являющихся членами такой комбинации ролей.

  • Динамические вычисления (меры, ключевые показатели эффективности, строки подробностей) автоматически ограничиваются, если они ссылаются на защищённую таблицу или столбец. Хотя нет механизма явной защиты меры, можно неявно защитить меру, обновив выражение для ссылки на безопасную таблицу или столбец.

  • Связи, ссылающиеся на защищенный столбец, работают, если таблица, в которой находится столбец, не защищена.

Power BI

Визуализации, ссылающиеся на объект семантической модели с настроенным OLS, отображают то же сообщение, что и для удаленного или не существующего объекта.

Сообщение OLS в визуализациях Power BI

Ограничения

Модели с OLS, настроенные для одной или нескольких таблиц или объектов столбцов, не поддерживаются этими функциями Power BI:

  • Визуализации Q&A
  • Визуализация быстрых инсайтов
  • Интеллектуальные визуализации повествования
  • Коллекция Типов данных Excel

См. также

Roles
Объект Роли (TMSL)
Язык скриптов табличной модели (TMSL)
Табличная объектная модель (TOM).