영업: 1-800-867-1380

데이터베이스 페더레이션 관리(Azure SQL 데이터베이스)

업데이트 날짜: 2014년 4월

Important중요
현재 페더레이션 구현은 Web 및 Business와 함께 사용이 중지될 예정입니다. 확장성, 유동성 및 성능을 최대화하려면 사용자 지정 분할 솔루션을 배포하는 것이 좋습니다. 사용자 지정 분할에 대한 자세한 내용은 Azure SQL 데이터베이스 확장을 참조하십시오.

Transact-SQL 문, 함수 및 뷰를 사용하여 페더레이션을 만들고, 변경하고, 모니터링할 수 있습니다. 이 항목에서는 페더레이션 관리 정보를 제공합니다.

각 페더레이션은 루트 및 초기 페더레이션 멤버로 시작합니다. 이는 CREATE FEDERATION 문을 사용하여 만듭니다. 페더레이션을 만든 후 USE FEDERATION 문을 사용한 다음 FEDERATED ON 절과 함께 CREATE TABLE을 사용하여 페더레이션 루트에 연결함으로써 페더레이션된 테이블 구조를 만들 수 있습니다.

페더레이션을 확장하려면 ALTER FEDERATION 문을 사용하여 기존 페더레이션 멤버를 새 멤버로 분할할 수 있습니다. SPLIT 작업은 이 작업의 일부로 지정된 페더레이션 키 값을 통해 분할될 멤버를 식별합니다. 페더레이션 멤버는 지정된 값에서 분할되며 원본 멤버에 이전에 포함된 행의 총 합계를 포함하는 2개의 새 페더레이션 멤버가 생성됩니다.

ALTER FEDERATION을 사용하여 DROP AT 작업을 통해 페더레이션 멤버 수를 줄일 수도 있습니다. 삭제된 멤버에 해당했던 페더레이션 키 값의 범위는 인접 멤버에 이전되지만 이 범위와 이전에 연결되었던 데이터는 이 작업으로 유지되지 않습니다.

note참고
페더레이션 멤버는 CREATE DATABASE 또는 DROP DATABASE 명령을 사용하여 만들거나 삭제할 수 없습니다.

DROP FEDERATION 문을 사용하여 페더레이션을 삭제할 수 있습니다. 이때 모든 페더레이션 멤버 및 연결된 다른 메타데이터와 논리 개체도 삭제됩니다.

또한 ALTER DATABASE는 페더레이션 멤버에서 완전히 지원됩니다.

페더레이션 데이터가 포함된 물리적 데이터베이스에 직접 연결할 수 있지만 개별 멤버 데이터베이스 이름을 알아야 하므로 이는 최적의 연결 방법이 아닙니다. USE FEDERATION 문은 페더레이션 루트를 통해 모든 연결을 라우팅하여 보다 쉬운 연결을 제공하며, 개별 멤버 데이터베이스의 이름을 알 필요 없이 페더레이션 이름과 페더레이션 키만 알면 됩니다.

WITH FILTERING=ON 절을 사용하여 연결을 필터링할 수 있으므로 연결에 대한 작업은 페더레이션 키 값과 일치하는 페더레이션 원자성 단위로 한정됩니다. 필터링이 설정된 경우 쿼리 프로세서는 페더레이션 열에서 페더레이션 키 값을 포함하는 조건자를 페더레이션된 테이블을 참조하는 모든 쿼리에 추가합니다.

Warning경고
페더레이션 원자성 단위는 보안 경계가 아니고 쿼리 프로세서는 동일한 페더레이션 멤버 내의 단위 간에 정보의 완전한 격리를 보장하지 않으므로 필터링을 보안 격리 메커니즘으로 사용하지 마십시오.

연결이 필터링되는지 여부를 확인하기 위해 sys.dm_exec_sessionsis_filtered 열을 반환합니다. 이 열의 데이터 형식은 비트입니다. 연결이 필터링되면 1이 반환되고, 그렇지 않으면 0이 반환됩니다. 연결이 필터링되는 경우 FEDERATION_FILTERING_VALUE를 사용하여 필터링 값을 확인할 수 있습니다.

페더레이션이 포함된 데이터베이스에 대한 인증은 페더레이션 없는 데이터베이스에 대한 인증과 동일합니다. 그러나 사용자 및 역할과 같은 보안 주체의 설정은 페더레이션 루트 데이터베이스로 한정되며 페더레이션 멤버에 자동으로 복제되지 않습니다.

페더레이션 멤버는 로그인한 사용자를 가질 수 없습니다. 대신 페더레이션 멤버에서 만들어진 사용자 계정은 페더레이션 루트에 있는 동일한 이름의 계정에 연결됩니다. 페더레이션 멤버 내의 역할은 페더레이션되지 않은 데이터베이스에서와 같이 관리됩니다.

페더레이션 멤버가 처음 만들어질 때 문을 실행하는 계정이 페더레이션 멤버의 소유자가 됩니다. 페더레이션 루트의 기존 보안 주체를 페더레이션 멤버에 추가하려면 데이터베이스 소유자가 CREATE USER 문을 사용하여 페더레이션 멤버의 사용자를 만들고 ALTER USER 문을 사용하여 이 사용자를 페더레이션 루트 데이터베이스의 기존 보안 주체에 연결해야 합니다. 사용자 이름은 페더레이션 루트에 있는 sys.database_principals의 보안 주체 이름과 정확히 일치해야 합니다. 역할이나 사용자가 아닌 다른 유형의 보안 주체에 사용자를 연결할 수는 없습니다.

note참고
사용자 이름이 페더레이션 루트의 기존 보안 주체 이름과 정확히 일치하지 않으면 문이 실패하고 다음과 같은 오류 메시지가 표시됩니다.

'user_name'이 올바른 user_name이 아니거나 권한이 없습니다.

페더레이션 루트 데이터베이스 내의 사용자와 역할은 페더레이션되지 않은 데이터베이스의 경우와 마찬가지로 만들어집니다.

연결된 사용자는 페더레이션 멤버 내에서 일반 사용자 계정으로 사용할 수 있으며, EXECUTE AS 절에 참여할 수 있고 역할에 추가될 수 있습니다. 연결된 사용자의 트러스트와 dbchaining이 사용하도록 설정되지 않기 때문에 EXECUTE AS를 사용하는 경우 WITH NO REVERT 절은 지원되지 않습니다.

다음 뷰에서는 페더레이션 작업에 대한 정보를 제공합니다. 정보는 작업이 실행되고 있는 한 이러한 뷰에서 보고되며 작업이 완료된 후 즉시 정리됩니다.

 

페더레이션 작업 뷰 설명

sys.dm_federation_operations

페더레이션 수준 작업에 대한 정보를 반환합니다.

sys.dm_federation_operation_members

작업과 관련된 페더레이션 멤버에 대한 정보를 반환합니다.

sys.dm_federation_operation_errors

페더레이션 작업 중에 발생한 오류에 대한 정보를 반환합니다.

sys.dm_federation_operation_error_members

오류가 발생한 작업과 관련된 페더레이션 멤버에 대한 정보를 반환합니다.

페더레이션, 멤버 및 페더레이션에서 사용되는 배포 체계를 설명하는 추가 메타데이터를 다음 뷰에서 얻을 수 있습니다. 또한 sys.databases는 이제 데이터베이스가 페더레이션 멤버인지 여부를 나타내는 비트 값이 포함된 is_federation_member라는 열을 반환합니다.

 

페더레이션 메타데이터 테이블 설명

sys.federations

데이터베이스 내의 페더레이션을 반환합니다.

sys.federation_members

페더레이션 내의 페더레이션 멤버를 반환합니다.

sys.federation_distributions

페더레이션에서 사용되는 배포 유형과 데이터 형식을 반환합니다.

sys.federation_member_distributions

페더레이션 멤버에 해당하는 배포 이름과 범위를 반환합니다.

sys.federated_table_columns

페더레이션된 테이블에 대한 페더레이션 관련 정보를 반환합니다.

페더레이션 작업에 대한 기록 정보는 페더레이션 기록 뷰를 통해 얻을 수 있습니다. 이 정보를 통해 멤버에 해당하는 범위를 비롯하여 특정 시점의 페더레이션 루트 및 멤버 정보를 다시 구성할 수 있습니다. 페더레이션 기록 뷰는 다음과 같습니다.

 

페더레이션 기록 테이블 설명

sys.federation_history

페더레이션에 대한 기록 정보를 반환합니다.

sys.federation_member_history

페더레이션 멤버에 대한 기록 정보를 반환합니다.

sys.federation_distribution_history

페더레이션의 배포 유형과 데이터 형식에 대한 기록 정보를 반환합니다.

sys.federation_member_distribution_history

페더레이션 멤버에 해당하는 범위에 대한 기록 정보를 반환합니다.

참고 항목

이 정보가 도움이 되었습니까?
(1500자 남음)
의견을 주셔서 감사합니다.
표시:
© 2014 Microsoft