임시 테이블 보안

적용 대상: SQL Server 2016(13.x) 이상 Azure SQL 데이터베이스Azure SQL Managed Instance

temporal 테이블에 적용되는 보안을 이해하려면 temporal 테이블에 적용되는 보안 주체를 이해해야 합니다. 이러한 보안 원칙을 이해한 이후에 CREATE TABLE, ALTER TABLE, SELECT 문에 대한 보안을 자세히 파악할 수 있습니다.

보안 원칙

다음 표는 temporal 테이블에 적용되는 보안 원칙에 대해 설명합니다.

원칙 설명
시스템 버전 관리를 사용하거나 사용 중지하려면 영향을 받는 개체에 대한 가장 높은 권한이 필요합니다. SYSTEM_VERSIONING 사용하고 사용 중지하려면 현재 테이블과 기록 테이블 모두에 대한 CONTROL 권한이 필요합니다.
기록 데이터를 직접 수정할 수 없습니다. SYSTEM_VERSIONING이 ON일 경우 사용자가 현재 또는 기록 테이블에 대해 가지고 있는 실제 권한과 상관없이 기록 데이터를 수정할 수 없습니다. 여기에는 데이터 및 스키마 수정이 모두 포함됩니다.
기록 데이터를 쿼리하려면 기록 테이블에 대해 SELECT 권한이 있어야 함 현재 테이블에 대해 SELECT 권한이 있는 사용자가 반드시 기록 테이블에 대해 SELECT 권한이 있는 것이 아닙니다.
감사를 수행할 경우 기록 테이블에 특정 방식으로 영향을 미치는 작업이 표시됩니다. 현재 테이블의 감사 설정은 자동으로 기록 테이블에 적용되지 않습니다. 감사는 기록 테이블에 대해 명시적으로 사용하도록 설정해야 합니다.

사용하면 기록 테이블에 대한 감사는 성공 여부에 관계없이 데이터에 액세스하려는 모든 직접 시도를 정기적으로 캡처합니다.

임시 쿼리 확장이 있는 SELECT에서는 기록 테이블이 해당 작업에 영향을 받았음을 보여줍니다.

CREATE/ALTER temporal 테이블에는 권한 검사가 기록 테이블에서도 발생하는 정보가 표시됩니다. 감사 파일에는 기록 테이블의 추가 레코드가 포함됩니다.

기록 테이블이 영향을 받았지만 additional_info에서 필요한 컨텍스트를 제공하는 현재 테이블 표면의 DML 작업(DML은 system_versioning 결과임).

스키마 작업 수행

SYSTEM_VERSIONING이 ON으로 설정되면 스키마 수정 작업이 제한됩니다.

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

연산 현재 테이블 기록 테이블
DROP TABLE 허용되지 않음 허용되지 않음
ALTER TABLE...SWITCH PARTITION SWITCH IN만(temporal 테이블을 사용하여 분할 참조) 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 권한

temporal 테이블을 만드는 CREATE TABLE 문의 일부로 지정된 기록 테이블에 대한 CONTROL 권한
Audit 감사를 실행할 경우 사용자가 두 개의 개체를 만들려는 시도를 했음이 표시됩니다. 데이터베이스에 테이블을 만들 수 있는 권한이 없거나 각 테이블의 스키마를 수정할 수 있는 권한이 없는 경우 작업이 실패할 수 있습니다. 감사는 temporal 테이블이 생성되었음을 보여줍니다. 데이터베이스에 테이블을 만들 수 있는 권한, 각 테이블의 스키마를 수정할 수 있는 권한 또는 기록 테이블에 대한 권한이 없으면 작업이 실패할 수 있습니다.

ALTER Temporal TABLE SET(SYSTEM_VERSIONING ON/OFF) 문의 보안

기능 새 기록 테이블 만들기 기존 기록 테이블 다시 사용
필요한 권한 데이터베이스의 CONTROL 권한

데이터베이스의 CREATE TABLE 권한

기록 테이블을 만들고 있는 스키마에 대한 ALTER 권한
변경된 원래 테이블에 대한 CONTROL 권한

ALTER TABLE 문의 일부로 지정된 기록 테이블에 대한 CONTROL 권한
Audit 감사 시 temporal 테이블이 수정되었으며 그와 동시에 기록 테이블이 생성되었다는 내용이 표시됩니다. 데이터베이스에 테이블을 만들 수 있는 권한, 기록 테이블의 스키마를 수정할 수 있는 권한 또는 temporal 테이블을 수정할 수 있는 권한이 없으면 작업이 실패할 수 있습니다. 감사 시 temporal 테이블이 수정되었지만 해당 작업에서 기록 테이블에 대한 액세스가 필요하다는 내용이 표시됩니다. 기록 테이블에 대한 권한이나 현재 테이블에 대한 권한이 없으면 작업이 실패할 수 있습니다.

SELECT 문의 보안

기록 테이블에 영향을 미치지 않는SELECT 문에 대한 SELECT 권한은 변경되지 않습니다. 기록 테이블에 영향을 미치는 SELECT 문의 경우 현재 테이블과 기록 테이블에 대한 SELECT 권한이 필요합니다.

참고 항목