Безопасность темпоральной таблицы
Область применения: SQL Server 2016 (13.x) и более поздних версий База данных SQL Azure Управляемый экземпляр SQL Azure
Чтобы понять безопасность, применяемую к темпоральным таблицам, необходимо понять принципы безопасности, которые применяются к темпоральным таблицам. После того как вы понимаете эти принципы безопасности, вы готовы ознакомиться с безопасностью вокруг CREATE TABLE
и ALTER TABLE
SELECT
инструкций.
Принципы обеспечения безопасности
В следующей таблице описаны принципы безопасности, применимые к темпоральным таблицам.
Принцип | 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
так и для таблицы журнала.
Связанный контент
- Темпоральные таблицы
- Начало работы с системными темпоральными таблицами
- Проверки согласованности систем темпоральных таблиц
- Секционирование с темпоральными таблицами
- Рекомендации и ограничения темпоральной таблицы
- Управление хранением исторических данных в системных темпоральных таблицах
- Системные темпоральные таблицы с оптимизированными для памяти таблицами
- Представления и функции темпоральных метаданных таблицы