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

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

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

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

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

Благодаря безопасности на уровне таблицы вы можете не только ограничить доступ к данным таблицы, но и к конфиденциальным метаданным имен таблиц. Задайте для свойства metadataPermission класса tablePermissions в объекте Rolesзначение 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 в объекте Rolesзначение None.

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

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

Ограничения

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

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

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

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

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

Power BI

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

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

Ограничения

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

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

См. также раздел

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