임시 테이블 보안Temporal Table Security

이 항목은 다음에 적용됩니다. 예SQL Server(2016부터)예Azure SQL Database아니요Azure SQL Data Warehouse아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

temporal 테이블에 보안이 적용되는 방식을 이해하려면 temporal 테이블에 적용되는 보안 원칙을 이해하는 것이 중요합니다.To understand security as it applies to temporal tables, it is important to understand the security principals that apply to temporal tables. 이러한 보안 원칙을 이해한 이후에 CREATE TABLE, ALTER TABLE, SELECT 문에 대한 보안을 자세히 파악할 수 있습니다.After you understand these security principles, you are ready to dive into the security around the CREATE TABLE, ALTER TABLE, and SELECT statements.

보안 원칙Security Principles

다음 표는 temporal 테이블에 적용되는 보안 원칙에 대해 설명합니다.The following table describes the security principles that apply to temporal tables:

원칙Principle 설명Description
system-versioning을 설정/해제하려면 영향을 받는 개체에 대해 가장 높은 권한이 있어야 함Enabling/disabling system-versioning requires highest privileges on affected objects SYSTEM_VERSIONING을 설정 및 해제하려면 현재 및 기록 테이블에 대해 CONTROL 권한이 있어야 합니다.Enabling and disabling SYSTEM_VERSIONING requires CONTROL permission on both the current and the history table
기록 데이터는 직접 수정할 수 없음History data cannot be modified directly SYSTEM_VERSIONING이 ON일 경우 사용자가 현재 또는 기록 테이블에 대해 가지고 있는 실제 권한과 상관없이 기록 데이터를 수정할 수 없습니다.When SYSTEM_VERSIONING is ON users cannot alter history data regardless of their actual permissions on current or the history table. 여기에는 데이터 및 스미카 수정이 포함됩니다.This includes both data and schema modifications.
기록 데이터를 쿼리하려면 기록 테이블에 대해 SELECT 권한이 있어야 함Querying history data requires SELECT permission on the history table 현재 테이블에 대해 SELECT 권한이 있는 사용자가 반드시 기록 테이블에 대해 SELECT 권한이 있는 것이 아닙니다.Merely because a user has SELECT permission on the current table does not mean that they have SELECT permission on the history table.
감사를 수행할 경우 기록 테이블에 특정 방식으로 영향을 미치는 작업이 표시됩니다.Audit surfaces operations affecting history table in specific ways: 기록 테이블을 정기적으로 감사할 경우 직접적인 데이터 액세스 시도를 모두 캡처할 수 있습니다(성공 여부와 무관).Auditing on history table regularly captures all direct attempts to access the data (regardless if they were successful or not).

임시 쿼리 확장이 포함된SELECT 는 기록 테이블이 해당 작업으로 영향을 받았음을 표시합니다.SELECT with temporal query extension shows that history table was affected with that operation.

CREATE/ALTER temporal 테이블에 기록 테이블에서도 사용 권한 검사가 실행된다는 정보가 표시됩니다.CREATE/ALTER temporal table expose information that permission check happens on history table as well. 감사 파일에는 기록 테이블에 대한 추가 기록이 포함됩니다.Audit file will contain additional record for history table.

현재 테이블에 DML 작업을 적용할 경우 기록 테이블이 영향을 받았다는 내용이 표시되지만 additional_info가 필요한 컨텍스트를 제공합니다(DML은 system_versioning의 결과임).DML operations on current table surface that history table was affected but additional_info provides necessary context (DML was result of system_versioning).

스키마 작업 수행Performing Schema Operations

SYSTEM_VERSIONING이 ON으로 설정된 경우에는 스키마 수정 작업이 제한됩니다.When SYSTEM_VERSIONING is set to ON, schema modification operations are limited.

허용되지 않는 ALTER 스키마 작업Disallowed ALTER schema operations

연산Operation 현재 테이블Current Table 기록 테이블History Table
DROP TABLEDROP TABLE 허용되지 않음Disallowed 허용되지 않음Disallowed
ALTER TABLE...SWITCH PARTITIONALTER TABLE…SWITCH PARTITION SWITCH IN만( 임시 테이블을 사용하여 분할참조)SWITCH IN only (see Partitioning with Temporal Tables) SWITCH OUT만( 임시 테이블을 사용하여 분할참조)SWITCH OUT only (see Partitioning with Temporal Tables)
ALTER TABLE...DROP PERIODALTER TABLE…DROP PERIOD 허용되지 않음Disallowed -
ALTER TABLE...ADD PERIODALTER TABLE…ADD PERIOD - 허용되지 않음Disallowed

허용되는 ALTER TABLE 작업Allowed ALTER TABLE operations

연산Operation 현재Current 기록History
ALTER TABLE...REBUILDALTER TABLE…REBUILD 허용됨(독립적)Allowed (independently) 허용됨(독립적)Allowed (independently)
CREATE INDEXCREATE INDEX 허용됨(독립적)Allowed (independently) 허용됨(독립적)Allowed (independently)
CREATE STATISTICSCREATE STATISTICS 허용됨(독립적)Allowed (independently) 허용됨(독립적)Allowed (independently)

CREATE Temporal TABLE 문의 보안Security of the CREATE Temporal TABLE Statement

새 기록 테이블 만들기Create New History Table 기존 기록 테이블 재사용Reuse Existing History Table
필요 권한Permission Required 데이터베이스의CREATE TABLE 권한CREATE TABLE permission in the database

현재 및 기록 테이블을 만들고 있는 대상 스키마에 대한ALTER 권한ALTER permission on the schemas into which the current and history tables are being created
데이터베이스의CREATE TABLE 권한CREATE TABLE permission in the database

현재 테이블을 만들 대상 스키마에 대한ALTER 권한ALTER permission on the schema in which the current table will be created.

temporal 테이블을 만드는CONTROL 문의 일부로 지정된 기록 테이블에 대한 CONTROL 권한CONTROL permission on the history table specified as part of the CREATE TABLE statement creating the temporal table
감사Audit 감사를 실행할 경우 사용자가 두 개의 개체를 만들려는 시도를 했음이 표시됩니다.Audit shows that users attempted to create two objects. 데이터베이스에 테이블을 만들 수 있는 권한이 없거나 각 테이블의 스키마를 수정할 수 있는 권한이 없는 경우 작업이 실패할 수 있습니다.Operation may fail due to lack of permissions to create a table in the database or due to lack of permissions to alter schemas for either table. 감사를 실행할 경우 temporal 테이블이 생성되었음이 표시됩니다.Audit shows that temporal table was created. 데이터베이스에 테이블을 만들 권한이 없거나 temporal 테이블에 대한 스키마를 수정할 권한이 없거나 기록 테이블에 대한 권한이 없는 경우 작업이 실패할 수 있습니다.Operation may fail due to lack of permission to create a table in the database, due to lack of permissions to alter the schema for the temporal table, or to lack of permissions on the history table.

ALTER Temporal TABLE SET(SYSTEM_VERSIONING ON/OFF) 문의 보안Security of the ALTER Temporal TABLE SET (SYSTEM_VERSIONING ON/OFF) Statement

새 기록 테이블 만들기Create New History Table 기존 기록 테이블 재사용Reuse Existing History Table
필요 권한Permission Required 데이터베이스의CONTROL 권한CONTROL permission in the database

데이터베이스의CREATE TABLE 권한CREATE TABLE permission in the database

기록 테이블을 만들고 있는 대상 스키마에 대한ALTER 권한ALTER permission on the schemas into which the history table is being created
수정된 원본 테이블에 대한CONTROL 권한CONTROL permission on the original table which is altered

ALTER TABLE 문의 일부로 지정된 기록 테이블에 대한 CONTROL 권한CONTROL permission on the history table specified as part of the ALTER TABLE statement
감사Audit 감사 시 temporal 테이블이 수정되었으며 그와 동시에 기록 테이블이 생성되었다는 내용이 표시됩니다.Audit shows that the temporal table was altered and the history table was created at the same time. 데이터베이스에 테이블을 만들 권한이 없거나 기록 테이블의 스키마를 수정할 권한이 없거나 temporal 테이블을 수정할 권한이 없는 경우 작업이 실패할 수 있습니다.Operation may fail due to lack of permissions to create a table in the database, due to lack of permissions to alter schema for history table, or due to lack of permission to modify temporal table. 감사 시 temporal 테이블이 수정되었지만 해당 작업에서 기록 테이블에 대한 액세스가 필요하다는 내용이 표시됩니다.Audit shows that temporal table was altered, but operation required access to history table. 기록 테이블에 대한 권한이 없거나 현재 테이블에 대한 권한이 없는 경우 작업이 실패할 수 있습니다.Operation may fail due to lack of permissions on the history table or lack of permissions on the current table.

SELECT 문의 보안Security of SELECT Statement

기록 테이블에 영향을 미치지 않는SELECT 문에 대한 SELECT 권한은 변경되지 않습니다.SELECT permission is unchanged for SELECT statements that do not affect the history table. 기록 테이블에 영향을 미치는 SELECT 문의 경우 현재 테이블과 기록 테이블에 대한 SELECT 권한이 필요합니다.For SELECT statements that affect the history table, SELECT permission is required on both the current table and the history table.

이 문서가 도움이 되었나요?Did this Article Help You? 여러분의 의견을 환영합니다.We’re Listening

어떤 정보를 찾고 계세요? 정보를 찾으셨나요?What information are you looking for, and did you find it? 여러분의 의견은 문서의 내용을 개선하는 데 많은 도움이 됩니다.We’re listening to your feedback to improve the content. 의견이 있으면 sqlfeedback@microsoft.comPlease submit your comments to sqlfeedback@microsoft.com

참고 항목See Also

임시 테이블 Temporal Tables
시스템 버전 관리 임시 테이블 시작 Getting Started with System-Versioned Temporal Tables
임시 테이블 시스템 일관성 검사 Temporal Table System Consistency Checks
임시 테이블을 사용하여 분할 Partitioning with Temporal Tables
임시 테이블 고려 사항 및 제한 사항 Temporal Table Considerations and Limitations
시스템 버전 관리된 임시 테이블에서 기록 데이터의 보존 관리 Manage Retention of Historical Data in System-Versioned Temporal Tables
메모리 액세스에 최적화된 테이블을 포함한 시스템 버전 임시 테이블 System-Versioned Temporal Tables with Memory-Optimized Tables
임시 테이블 메타데이터 뷰 및 함수Temporal Table Metadata Views and Functions