OLEDB 데이터 원본의 원격 데이터에 액세스하기 위한 권한 SQL Server

이 문서에서는 특정 문서의 기능 또는 기능을 사용하는 특정 쿼리를 사용하지 않도록 설정하는 OPENROWSET OPENDATASOURCE SQL Server.

원래 제품 버전:   SQL Server
원래 KB 번호:   327489

요약

SQL 서버의 문을 ad hoc 메서드로 사용하여 원격 OLEDB 인스턴스를 비롯한 원격 OPENROWSET OLEDB 공급자의 데이터에 OPENDATASOURCE SQL Server 있습니다. 이러한 문은 DisallowAdhocAccess 레지스트리 옵션이 지정된 공급자에 대해 명시적으로 0으로 설정되어 있으며 Ad Hoc 분산 쿼리 고급 구성 옵션을 사용하도록 설정한 경우 OLE DB 데이터 원본에서 원격 데이터에 액세스하는 데 사용할 수   있습니다. 이러한 옵션을 설정하지 않은 경우 기본 동작은 Ad Hoc 액세스를 허용하지 않습니다.

이 문서에서는 레지스트리 설정 및 기본 동작뿐만 아니라 레지스트리 설정을 통해 DisallowAdhocAccess를 SQL Server Management Studio 세부 정보를 제공합니다.

Transact-SQL 사용하지 않도록 설정

참고

를 사용하여 원격 OLE BD 데이터 원본에 대한 추가 액세스는 기본적으로 사용하지 않도록 설정되어 있으며 추가 OPENROWSET OPENDATASOURCE 구성이 필요하지 않습니다. 이 원격 액세스를 이전에 명시적으로 사용하도록 설정한 경우만 아래 절차를 따라야 합니다.

아래 절차 중 하나를 사용하여 및 함수의 특정 OLE DB 공급자와 함께 임시 연결 문자열을 사용하는 transact-SQL 문을 사용하지 않도록 설정할 OPENROWSET OPENDATASOURCE 수 있습니다.

SQL Server Management Studio DisallowAdHocAccess (SSMS)

  1. 연결된 SSMS 열고 공급자 확장

  2. OLE DB 공급자를 클릭하여 선택한 다음 공급자 옵션 단추를 클릭합니다.

  3. 아래로 스크롤하여 adhoc 액세스 속성 허용 안 함 확인란을 선택하고 확인 을 클릭합니다.

레지스트리를 수동으로 수정하고 값을 DisallowAdHocAccess 추가합니다.

참고

두 그림은 ODBC와 OLE DB 공급자 모두에 대해 OLE DB 공급자를 변경하는 SQL Server 예입니다. 다른 OLE DB 공급자를 사용하려면 해당 공급자의 항목을 수정해야 합니다.

중요

이 절, 방법 또는 작업에는 레지스트리를 수정하는 방법에 대한 단계가 포함되어 있습니다. 그러나 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 따라서 다음 단계를 주의하여 수행해야 합니다. 추가된 보호를 위해 레지스트리를 수정하기 전에 백업하세요. 그런 다음 문제가 발생할 경우 레지스트리를 복원할 수 있습니다. 레지스트리를 백업 및 복원하는 방법에 대한 자세한 내용은 Windows에서 레지스트리를 백업 및 복원하는 방법을 참조하세요.

연결된 서버를 만들 때 DisallowAdHocAccess 속성 지정

OLE DB 공급자를 실행하는 컴퓨터에 연결된 서버를 SQL Server OLE DB 공급자의 속성을 DisallowAdHocAccess 지정할 수 있습니다. 이렇게 하려면 다음과 같이 하십시오.

  1. SQL Server Enterprise 관리자를 열고 해당 서버의 보안 폴더를 클릭하여 선택합니다.
  2. 연결된 서버 항목을 마우스 오른쪽 단추로 클릭한 다음 새 연결된 서버를 클릭합니다.
  3. OLE DB 공급자를 클릭하여 선택한 다음 공급자 옵션 단추를 클릭합니다.
  4. 아래로 스크롤하여 Adhoc 액세스 속성 허용 안 함 확인란을 선택합니다. 연결된 서버 항목 만들기를 계속 완료합니다.

레지스트리를 수동으로 수정하고 DisallowAdHocAccess 값을 추가합니다.

연결된 서버를 저장한 후 DisallowAdHocAccess 속성은 레지스트리 설정을 통해서만 설정할 수 있습니다.

참고

두 그림은 ODBC와 OLE DB 공급자 모두에 대해 OLE DB 공급자를 변경하는 SQL Server 예입니다. 다른 OLE DB 공급자를 사용하려면 해당 공급자의 항목을 수정해야 합니다.

중요

이 절, 방법 또는 작업에는 레지스트리를 수정하는 방법에 대한 단계가 포함되어 있습니다. 그러나 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 따라서 다음 단계를 주의하여 수행해야 합니다. 추가된 보호를 위해 레지스트리를 수정하기 전에 백업하세요. 그런 다음 문제가 발생할 경우 레지스트리를 복원할 수 있습니다. 레지스트리를 백업 및 복원하는 방법에 대한 자세한 내용은 Microsoft 기술 자료 문서를 보려면 다음 문서 번호를 클릭하고 322756 레지스트리를 백업 및 복원하는 Windows

DisallowAdHocAccess 값 추가

값을 DisallowAdHocAccess 추가하기 위해 다음 단계를 수행합니다.

  1. 레지스트리 편집기를 시작합니다.

  2. 레지스트리에서 키를 찾아 클릭합니다. <ProviderName> HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers

    예제

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\MSDASQL

  3. 편집 메뉴에서추가를 클릭한 다음 이 레지스트리 값을 추가합니다.

    Value name: DisallowAdHocAccess
    Data type: REG_DWORD
    Radix: Hex
    Value data: 1
    
  4. 레지스트리 편집기를 종료합니다.

Ad-Hoc 원격 액세스 사용

Ad Hoc 분산 쿼리 고급 구성 옵션을 사용하도록 설정한 후 지정한 공급자에 대해 레지스트리 옵션을 명시적으로 DisallowAdhocAccess0으로 설정해야 합니다.

기존 값을 DisallowAdHocAccess 수정하려면 다음 단계를 수행합니다.

  1. 레지스트리 편집기를 시작합니다.

  2. 레지스트리의 키에서 DisallowAdHocAccess 값을 찾아서HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers<ProviderName>

    예제

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers\Microsoft.ACE.OLEDB.12.0

  3. 편집 메뉴에서 DWORD를 클릭하고 1을 입력한 다음 확인을 클릭합니다.

  4. 레지스트리 편집기를 종료합니다. 명명된 인스턴스의 경우 레지스트리 키는 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<Instance Name>\Providers\<ProviderName> 입니다.

참고

  • 값을 DisallowAdHocAscess 1에서 0으로 변경하면 SQL 서비스를 다시 시작할 필요가 없는 반면 0에서 1로 변경하면 변경된 변경을 위해 SQL 서비스를 다시 시작해야 합니다.
  • 속성을 1로 설정하면 SQL Server OLE DB 공급자에 대한 함수 및 함수를 통한 특정 액세스를 DisallowAdHocAccess OPENROWSET OPENDATASOURCE 허용하지 않습니다. 특정 쿼리에서 이러한 함수를 호출하려고 할 경우 다음과 같은 오류 메시지가 표시됩니다.

서버: Msg 7415, 수준 16, 상태 1, 행 1 OLE DB 공급자 'Microsoft.Jet.OLEDB.4.0'에 대한 액세스가 거부됩니다. 연결된 서버를 통해 이 공급자에 액세스해야 합니다.

즉, 특정 OLE DB 공급자에 대해 속성이 1로 설정되어 있는 경우 특정 OLE DB 공급자에 대해 미리 정의한 연결된 서버 설정을 사용해야 DisallowAdHocAccess 합니다. 해당 공급자를 또는 함수에 참조하는 추가 연결 문자열을 더 이상 전달할 OPENROWSETOPENDATASOURCE 없습니다.

참고 항목