연결된 서버 이름을 사용하여 데이터 원본 확인

연결된 서버가 정의되면 이 연결된 서버의 데이터 개체를 참조하기 위해 Transact-SQL 문에 4부분으로 된 linked_server_name**.catalog.**schema.object_name 형식의 이름을 사용할 수 있습니다. 이름의 4부분은 다음과 같이 정의됩니다.

  • linked_server_name
    OLE DB 데이터 원본을 참조하는 연결된 서버

  • catalog
    개체가 포함된 OLE DB 데이터 원본의 카탈로그

  • schema
    개체가 포함된 카탈로그의 스키마

  • object_name
    스키마의 데이터 개체

예를 들어 다음 쿼리는 연결된 SEATTLESales 서버의 AdventureWorks2008R2 데이터베이스에 있는 Production.Product 및 Sales.SalesOrderDetails 테이블을 참조합니다.

SELECT p.Name, sod.SalesOrderID

FROM SEATTLESales.AdventureWorks2008R2.Production.Product p

INNER JOIN SEATTLESales.AdventureWorks2008R2.Sales.SalesOrderDetail sod

ON p.ProductID = sod.ProductID

ORDER BY p.Name ;

SQL Server에서는 linked_server_name을 사용하여 OLE DB 공급자와 데이터 원본을 식별합니다. catalog, schema 및 object_name 매개 변수는 특정 데이터 개체를 식별하기 위해 OLE DB 공급자로 전달됩니다. 연결된 서버가 SQL Server 인스턴스를 참조할 경우 catalog는 데이터베이스를 참조하고 schema는 스키마를 참조합니다.

이전 버전의 SQL Server에서는 스키마가 개체 소유자입니다. SQL Server에서는 스키마가 스키마를 만든 데이터베이스 사용자와 독립적으로 존재합니다. SQL Server의 스키마에 대한 자세한 내용은 사용자와 스키마 분리를 참조하십시오.

연결된 서버의 개체로 작업할 때는 항상 정규화된 이름을 사용하십시오. 연결된 서버의 테이블에 대한 dbo 소유자 이름에는 암시적 확인이 지원되지 않습니다. 따라서 스키마 이름이 없는 쿼리는 연결된 서버가 SQL Server의 또 다른 인스턴스일 경우에도 7313 오류를 생성합니다.

시스템 관리자는 sp_addlinkedsrvlogin 시스템 저장 프로시저를 사용하여 로그인 매핑을 설정함으로써 특정 연결된 서버에 액세스할 수 있는 사용자를 제어할 수 있습니다. 이 저장 프로시저를 사용하면 특정 로컬 로그인에 대한 원격 로그인과 암호를 설정하고 Windows 인증 로그인에 대한 "자체" 매핑을 설정할 수 있습니다.

보안 정보보안 정보

다른 데이터 원본에 연결할 때 SQL Server는 Windows 인증 로그인을 위해 로그인을 적절하게 가장하지만 SQL Server 인증 로그인은 가장할 수 없습니다. 따라서 SQL Server 인증 로그인을 위해 SQL Server에서는 SQL Server 서비스가 실행되는 Windows 계정의 보안 컨텍스트를 사용하여 파일, Active Directory와 같은 비관계형 데이터 원본 등의 다른 데이터 원본에 액세스할 수 있습니다. 이렇게 하면 사용 권한이 없는 다른 데이터 원본에 대한 액세스를 해당 로그인에 허용할 수 있습니다. 그러나 SQL Server 서비스가 실행 중인 계정에는 사용 권한이 있습니다. sp_addlinkedsrvlogin을 사용하여 연결된 서버에 대한 SQL Server 인증 로그인에 액세스할 수 있는 경우 이 가능성을 고려해야 합니다.