다음을 통해 공유


서버 구성: db 간 소유권 체인

적용 대상:SQL Server

cross db ownership chaining 옵션을 사용하여 SQL Server 인스턴스에 대한 데이터베이스 간 소유권 체인을 구성합니다.

이 서버 옵션을 사용하면 데이터베이스 수준에서 데이터베이스 간 소유권 체인을 제어하거나 모든 데이터베이스의 데이터베이스 간 소유권 체인을 제어할 수 있습니다.

  • cross db ownership chaining 인스턴스에 대해 꺼져0 있으면 모든 데이터베이스에 대해 데이터베이스 간 소유권 체인을 사용할 수 없습니다.

  • cross db ownership chaining 인스턴스에 대해 (1)가 켜지면 모든 데이터베이스에 대해 데이터베이스 간 소유권 체인이 켜집니다.

  • 문의 절 SET 을 사용하여 개별 데이터베이스에 대해 데이터베이스 간 소유권 체인을 ALTER DATABASE 설정할 수 있습니다. 새 데이터베이스를 만드는 경우 문을 사용하여 CREATE DATABASE 새 데이터베이스에 대한 데이터베이스 간 소유권 체인 옵션을 설정할 수 있습니다.

    cross db ownership chaining 1 SQL Server 인스턴스에서 호스팅하는 모든 데이터베이스가 데이터베이스 간 소유권 체인에 참여해야 하며 이 설정의 보안 영향을 알고 있는 경우가 아니면 설정을 사용하지 않는 것이 좋습니다.

데이터베이스 간 소유권 체인의 상태 확인

데이터베이스 간 소유권 체인의 현재 상태 확인하려면 다음 쿼리를 실행합니다.

SELECT is_db_chaining_on,
       name
FROM sys.databases;

그 결과 1 데이터베이스 간 소유권 체인이 사용하도록 설정되어 있음을 나타냅니다.

데이터베이스 간 소유권 체인 제어

데이터베이스 간 소유권 체인을 설정하거나 해제하기 전에:

  • 데이터베이스 간 소유권 체인을 설정하거나 해제하려면 sysadmin 고정 서버 역할의 멤버여야 합니다.

  • 프로덕션 서버에서 데이터베이스 간 소유권 체인을 해제하기 전에 타사 애플리케이션을 비롯한 모든 애플리케이션을 완전히 테스트하여 변경 내용이 애플리케이션 기능에 영향을 주지 않도록 합니다.

  • 를 사용하여 지정 cross db ownership chainingRECONFIGURE하는 sp_configure 경우 서버가 실행되는 동안 옵션을 변경할 수 있습니다.

  • 데이터베이스 간 소유권 체인이 필요한 데이터베이스가 있는 경우 인스턴스에 대한 옵션을 해제 cross db ownership chaining 한 다음 sp_configure 문을 사용하여 필요한 개별 데이터베이스에 대해 데이터베이스 간 소유권 체인을 설정하는 것이 좋습니다.

보안 위험

SQL Server에서 데이터베이스 간 소유권 체인을 사용하도록 설정하면 잠재적인 보안 취약성이 발생합니다. 이 기능이 활성화되면 상승된 권한을 가진 로컬 데이터베이스 사용자가 소유권 체인을 활용하여 권한을 에스컬레이션하고 잠재적으로 sysadmin 액세스 권한을 얻을 수 있습니다.

인스턴스 수준에서 데이터베이스 간 소유권 체인을 사용하도록 설정하지 말고 해당 사용을 신뢰할 수 있는 관련 데이터베이스로만 제한해야 합니다.