다음을 통해 공유


SQL Server에서 데이터베이스 간 액세스 활성화(ADO.NET)

업데이트: November 2007

데이터베이스 간 소유권 체인은 한 데이터베이스의 프로시저가 다른 데이터베이스의 개체에 종속되는 경우 발생합니다. 끊어지지 않은 소유권 체인에서는 모든 개체 소유자가 동일한 로그인 계정에 매핑되어야 한다는 점을 제외하고 데이터베이스 간 소유권 체인은 단일 데이터베이스 내의 소유권 체인과 같은 방식으로 작동합니다. 소스 데이터베이스의 소스 개체와 대상 데이터베이스의 대상 개체를 동일한 로그인 계정에서 소유하는 경우 SQL Server는 대상 개체의 권한을 확인하지 않습니다.

기본적으로 활성화되지 않음

SQL 2000 SP3에 추가된 데이터베이스 간 소유권 체인은 기본적으로 비활성화되어 있습니다. Microsoft에서는 데이터베이스 간 소유권 체인이 다음과 같은 보안 위험에 노출되므로 데이터베이스 간 소유권 체인을 비활성화할 것을 권장합니다.

  • 데이터베이스 소유자 및 db_ddladmin 또는 db_owners 데이터베이스 역할의 멤버는 개체를 만들어 다른 사용자가 소유하도록 할 수 있습니다. 이러한 개체는 잠재적으로 다른 데이터베이스의 개체를 대상으로 합니다. 이것은 데이터베이스 간 소유권 체인을 활성화할 때 모든 데이터베이스의 데이터에 대해 이러한 사용자를 완전 신뢰한다는 의미입니다.

  • CREATE DATABASE 권한이 있는 사용자는 새 데이터베이스를 만들고 기존 데이터베이스에 연결할 수 있습니다. 데이터베이스 간 소유권 체인이 활성화되면 이러한 사용자는 새로 만들었거나 연결한 데이터베이스를 통해 권한이 없는 다른 데이터베이스의 개체에 액세스할 수 있습니다.

데이터베이스 간 소유권 체인 활성화

데이터베이스 간 소유권 체인은 권한이 높은 사용자를 완전 신뢰할 수 있는 환경에서만 활성화해야 합니다. 모든 데이터베이스에 대해 설정하는 동안 구성하거나 Transact-SQL 명령 sp_configure 및 sp_dboption을 사용하는 특정 데이터베이스에 대해 선택적으로 구성할 수 있습니다.

SQL Server 2000 SP3에서는 보안 강화를 위해 Cross DB Ownership Chaining 옵션을 추가하여 데이터베이스 간 소유권 체인을 구성할 수 있습니다. SQL Server 2005 이상에서 데이터베이스 간 소유권 체인을 선택적으로 구성하려면 sp_configure를 사용하여 서버에 대해 비활성화합니다. ALTER DATABASE 명령을 SET DB_CHAINING ON으로 사용하여 데이터베이스 간 소유권 체인을 해당 데이터베이스에 대해서만 구성합니다.

동적 SQL

데이터베이스 간 소유권 체인은 동일 사용자가 두 데이터베이스에 없는 경우 동적으로 생성된 SQL 문이 실행되는 환경에서는 동작하지 않습니다. SQL Server 2005에서는 다른 데이터베이스의 데이터에 액세스하는 저장 프로시저를 만들고 두 데이터베이스 모두에 존재하는 인증서로 프로시저에 서명하여 이 문제를 피할 수 있습니다. 이렇게 하면 사용자에게 데이터베이스 액세스 또는 권한을 부여하지 않고 프로시저에서 사용되는 데이터베이스 리소스에 사용자가 액세스하도록 할 수 있습니다.

외부 리소스

자세한 내용은 다음 리소스를 참조하십시오.

리소스

설명

Extending Database Impersonation by Using EXECUTE ASCross DB Ownership Chaining Option(SQL Server 2008 온라인 설명서)

이 항목에서는 Microsoft SQL Server 2008의 인스턴스에 대해 데이터베이스 간 소유권 체인을 구성하는 방법을 설명합니다.

EXECUTE AS를 사용하여 데이터베이스 가장 확장데이터베이스 간 소유권 체인 활성화 옵션(SQL Server 2005 온라인 설명서)

이 항목에서는 Microsoft SQL Server 2005의 인스턴스에 대해 데이터베이스 간 소유권 체인을 구성하는 방법을 설명합니다.

데이터베이스 간 소유권 체인(SQL Server 2000 온라인 설명서)

SQL Server 2000 SP3에 추가된 옵션을 사용하여 데이터베이스 간 소유권 체인을 구성하는 방법을 설명합니다.

참고 항목

개념

SQL Server에서 저장 프로시저로 권한 관리(ADO.NET)

SQL Server에서 보안 동적 SQL 작성(ADO.NET)

SQL Server에서 저장 프로시저 서명(ADO.NET)

기타 리소스

ADO.NET 응용 프로그램 보안

SQL Server 보안 개요(ADO.NET)