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


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

Область применения: SQL Server 2016 (13.x) и более поздних версий База данных SQL Azure Управляемый экземпляр SQL Azure

Чтобы понять безопасность, применяемую к темпоральным таблицам, необходимо понять принципы безопасности, которые применяются к темпоральным таблицам. После того как вы понимаете эти принципы безопасности, вы готовы ознакомиться с безопасностью вокруг CREATE TABLEи ALTER TABLESELECT инструкций.

Принципы обеспечения безопасности

В следующей таблице описаны принципы безопасности, применимые к темпоральным таблицам.

Принцип Description
Включение и отключение системного управления версиями требует наивысших привилегий для затронутых объектов Для включения и отключения SYSTEM_VERSIONING требуется CONTROL разрешение на текущую и таблицу журнала.
Данные журнала не могут быть изменены напрямую Если SYSTEM_VERSIONING это ONтак, пользователи не могут изменять данные журнала независимо от их фактических разрешений в текущей или таблице журнала. Это ограничение включает как изменения данных, так и схемы. 1
Запрос данных журнала требует SELECT разрешения на таблицу журнала Пользователь с SELECT разрешением на текущую таблицу не имеет SELECT автоматическиго разрешения на таблицу журнала.
Аудит показывает операции, влияющие на таблицу журнала определенным образом Параметры аудита из текущей таблицы не применяются автоматически к таблице журнала. Для таблицы журнала аудит необходимо включать явно. После включения аудит таблицы журнала регулярно записывает все прямые попытки доступа к данным (независимо от того, были ли они успешными или нет).

SELECT С расширением темпорального запроса показано, что таблица журнала была затронута этой операцией.

CREATE/ALTER Темпоральная таблица предоставляет сведения о том, что проверка разрешений также выполняется в таблице журнала. Файл аудита содержит дополнительные записи для таблицы журнала.

Операции DML в текущей таблице показывают, что таблица журнала затронута, но additional_information предоставляет необходимый контекст (DML был результатом SYSTEM_VERSIONING).

1 Если у вас есть разрешение ALTER на текущую таблицу и таблицу журнала, и вы удаляете столбец в текущей таблице, связанный столбец в таблице журнала также удаляется, даже если SYSTEM_VERSIONING есть ON.

Выполнение операций схемы

Если SYSTEM_VERSIONING задано значение ON, операции изменения схемы ограничены.

Запрещенные операции ALTER над схемой

Операция Текущая таблица Таблица журнала
DROP TABLE Запрещено Запрещено
ALTER TABLE...SWITCH PARTITION SWITCH IN только (см . раздел с темпоральными таблицами) SWITCH OUT только (см . раздел с темпоральными таблицами)
ALTER TABLE...DROP PERIOD Запрещено Неприменимо
ALTER TABLE...ADD PERIOD Неприменимо Запрещено

Разрешенные операции ALTER TABLE

Операция Текущие Журнал
ALTER TABLE...REBUILD Допускается (независимо друг от друга) Допускается (независимо друг от друга)
CREATE INDEX Допускается (независимо друг от друга) Допускается (независимо друг от друга)
CREATE STATISTICS Допускается (независимо друг от друга) Допускается (независимо друг от друга)

Безопасность инструкции темпоральной таблицы CREATE

Функция Создание таблицы журнала Повторное использование существующей таблицы журнала
Требования к разрешениям CREATE TABLE разрешение в базе данных

ALTER разрешение на схемы, в которые создаются текущие и журналы таблиц
CREATE TABLE разрешение в базе данных

ALTER разрешение на схему, в которой будет создана текущая таблица.

CONTROL разрешение на таблицу журнала, указанную в инструкции CREATE TABLE , создав темпоральную таблицу.
Audit Аудит показывает, что пользователи пытались создать два объекта. Операция может завершиться ошибкой из-за отсутствия разрешений на создание таблицы в базе данных или из-за отсутствия разрешений на изменение схем для любой таблицы. Аудит показывает, что была создана темпоральная таблица. Операция может завершиться ошибкой из-за отсутствия разрешения на создание таблицы в базе данных, отсутствие разрешений на изменение схемы для темпоральной таблицы или отсутствие разрешений на таблицу журнала.

Безопасность инструкции ALTER временных таблиц SET (SYSTEM_VERSIONING ON/OFF)

Функция Создание таблицы журнала Повторное использование существующей таблицы журнала
Требования к разрешениям CONTROL разрешение в базе данных.

CREATE TABLE разрешение в базе данных.

ALTER разрешение на схемы, в которые создается таблица журнала.
CONTROL разрешение на исходную таблицу, измененную.

CONTROL разрешение на таблицу журнала, указанную в рамках инструкции ALTER TABLE .
Audit Аудит показывает, что темпоральная таблица была изменена и в то же время была создана прежняя таблица. Эта операция может завершиться ошибкой из-за отсутствия разрешений на создание таблицы в базе данных, отсутствие разрешений на изменение схемы для таблицы журнала или отсутствие разрешения на изменение темпоральной таблицы. Аудит показывает, что темпоральная таблица была изменена, но операция, требующая доступа к таблице журнала. Операция может завершиться ошибкой из-за отсутствия разрешений в таблице журнала или отсутствия разрешений на текущую таблицу.

Безопасность инструкции SELECT

SELECT разрешение не изменяется для SELECT инструкций, которые не влияют на таблицу журнала. Для SELECT инструкций, влияющих на таблицу журнала, требуется разрешение как для текущей таблицы, SELECT так и для таблицы журнала.