Безопасность темпоральных таблиц
Применимо к: SQL Server 2016 (13.x) и более поздних версий Azure SQL DatabaseУправляемый экземпляр SQL Azure
Для понимания безопасности применительно к темпоральным таблицам важно понять принципы безопасности, касающиеся темпоральных таблиц. Изучив эти принципы безопасности, можно приступить к рассмотрению вопросов безопасности относительно инструкций CREATE TABLE, ALTER TABLEи SELECT .
Принципы безопасности
В следующей таблице описаны принципы безопасности, применимые к темпоральным таблицам.
Принцип | Description |
---|---|
Включение и отключение системного управления версиями требует наивысших прав на затронутые объекты | Для включения и отключения SYSTEM_VERSIONING необходимо разрешение CONTROL как для текущей, так и для прежней таблицы |
Данные за прошедший период нельзя изменить напрямую | Если параметр SYSTEM_VERSIONING включен (ON), пользователи не могут изменять данные за прошедший период независимо от своих фактических разрешений для текущей или прежней таблицы. Это относится к изменениям как данных, так и схемы. |
Для отправки запросов к данным за прошедший период требуются разрешения SELECT для прежней таблицы | То, что у пользователя есть разрешение SELECT для текущей таблицы, не означает, что у него есть разрешение SELECT для прежней таблицы. |
Аудит показывает операции, затрагивающие прежнюю таблицу определенными способами: | Параметры аудита из текущей таблицы не применяются к таблице журнала автоматически. Для таблицы журнала аудит необходимо включать явно. После включения аудита для таблицы журнала будут регулярно фиксироваться все попытки прямого доступа к данным (независимо от того, были ли они успешными). SELECT с расширением темпорального запроса показывает, что прежняя таблица была затронута соответствующей операцией. Темпоральная таблицаCREATE/ALTER предоставляет информацию о том, что проверка разрешения выполняется также для прежней таблицы. Файл аудита будет содержать дополнительную запись для прежней таблицы. Операции DML над текущей таблицей показывают, что прежняя таблица была затронута, но additional_info предоставляет необходимый контекст (DML — это результат system_versioning). |
Выполнение операций со схемой
Если параметр 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 Temporal TABLE
Компонент | Создание новой прежней таблицы | Повторное использование существующей прежней таблицы |
---|---|---|
Требуемое разрешение | РазрешениеCREATE TABLE в базе данных РазрешениеALTER на схемы, в которых создаются текущие таблицы и прежней таблицы |
РазрешениеCREATE TABLE в базе данных РазрешениеALTER на схемы, в которых будет создана текущая таблица РазрешениеCONTROL для прежней таблицы, указанной как часть инструкции CREATE TABLE , которая создает темпоральную таблицу |
Аудит | Аудит показывает, что пользователи пытались создать два объекта. Операция может завершиться ошибкой из-за отсутствия разрешений на создание таблицы в базе данных или из-за отсутствия разрешений на изменение схем для любой из таблиц. | Аудит показывает, что темпоральная таблица была создана. Операция может завершиться ошибкой из-за отсутствия разрешения на создание таблицы в базе данных, из-за отсутствия разрешений на изменение схемы для темпоральной таблицы или из-за отсутствия разрешений на прежнюю таблицу. |
Безопасность инструкции ALTER Temporal TABLE SET (SYSTEM_VERSIONING ON/OFF)
Компонент | Создание новой прежней таблицы | Повторное использование существующей прежней таблицы |
---|---|---|
Требуемое разрешение | РазрешениеCONTROL в базе данных РазрешениеCREATE TABLE в базе данных РазрешениеALTER на схемы, в которых создается прежняя таблица |
РазрешениеCONTROL на исходную таблицу, которая изменяется РазрешениеCONTROL на прежнюю таблицу, указанную как часть инструкции ALTER TABLE |
Аудит | Аудит показывает, что темпоральная таблица была изменена и в то же время была создана прежняя таблица. Операция может завершиться ошибкой из-за отсутствия разрешений на создание таблицы в базе данных, из-за отсутствия разрешений на изменение схемы для прежней таблицы или из-за отсутствия разрешений на изменение темпоральной таблицы. | Аудит показывает, что темпоральная таблица была изменена, но для операции потребовался доступ к прежней таблице. Операция может завершиться ошибкой из-за отсутствия разрешений на прежнюю таблицу или из-за отсутствия разрешений на текущую таблицу. |
Безопасность инструкции SELECT
РазрешениеSELECT не изменяется для инструкций SELECT , которые не влияют на прежнюю таблицу. Для инструкций SELECT , влияющих на прежнюю таблицу, требуется разрешение SELECT как на текущую, так и на прежнюю таблицу.
См. также:
- Темпоральные таблицы
- Приступая к работе c темпоральными таблицами с системным управлением версиями
- Проверка согласованности системной темпоральной таблицы
- Секционирование с помощью темпоральных таблиц
- Рекомендации и ограничения для темпоральной таблицы
- Управление хранением данных журнала в темпоральных таблицах с системным управлением версиями
- Темпоральные таблицы с системным управлением версиями и таблицы, оптимизированные для памяти
- Представления и функции метаданных для временной таблицы
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по