Executar um SQL distribuídas consulta usando ADSI

Traduções deste artigo Traduções deste artigo
ID do artigo: 299410 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo fornece informações sobre como usar o provedor OLEDB do Active Directory Services Interfaces (ADSI) do SQL Server para executar uma consulta distribuída.

Mais Informações

Requisitos e informações gerais

Uma consulta distribuída permite ao desenvolvedor preencher uma tabela do SQL Server ou o modo de exibição com dados no Active Directory ou outro servidor (LIGHTWEIGHT Directory Access Protocol). Para executar uma consulta distribuída usando a ADSI, o servidor deve estar executando o SQL Server 7.0 ou posterior. ADSI é um componente do sistema do Windows 2000, portanto, nenhuma instalação adicional no necessária nesse sistema operacional. Se sistema operacional do servidor for Windows NT 4.0, o Active Directory extensão cliente (DSClient) para o Windows NT 4.0 deve estar instalado. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
288358Como instalar a extensão cliente do Active Directory
Um procedimento passo a passo para executar uma consulta distribuída usando a ADSI pode ser encontrado em "Ingressar heterogêneo dados" no seguinte artigo da MSDN Library:
Ingressando em dados heterogêneos
http://msdn.microsoft.com/en-us/library/aa746379.aspx
Quando o comando OPENQUERY é emitido, SQL Server irá chamar o provedor OLEDB do ADSI, ADsDSOObject, que foi configurada na função sp_addlinkedserver . O provedor passará a consulta para funções da interface lDirectorySearch ADSI subjacentes. Essas funções ADSI tornará as chamadas LDAP necessárias para o servidor desejado. As respostas do servidor serão passadas backup camadas mesmas para o SQL Server.

Uma consulta no dialetos o LDAP ou o SQL pode ser usada. Informações adicionais sobre a pesquisa com o provedor OLEDB do ADSI podem ser encontradas no seguinte artigo do MSDN:
Pesquisar no Active Directory
http://msdn.microsoft.com/en-us/library/aa746468(VS.85).aspx
Uma discussão de dois dialetos é encontrada no seguinte subtópico no MSDN:
Dialeto
http://msdn.microsoft.com/en-us/library/aa772377(VS.85).aspx
Se um asterisco é especificado para a lista de atributos, o provedor de ADSI OLEDB retorna um conjunto de registros que contém somente o ADsPath de cada entrada. ADsPath é um lado do cliente gerado atributo e é garantido a ser retornado como um atributo singled importantes.

Uma seqüência de ligação sem servidor é aquele que não contém o nome ou o endereço IP do servidor de destino. Vínculos sem servidor são usados para localizar o melhor controlador de domínio Windows 2000 para manipular a solicitação. Vínculos sem servidor não podem ser usados quando o servidor de destino não é um controlador de domínio Windows 2000 para o domínio padrão. Para obter informações adicionais sobre ligações sem servidor, consulte
Ligação sem servidor e RootDSE
http://msdn.microsoft.com/en-us/library/ms677945.aspx
No exemplo no white paper, o servidor LDAP será ser contatado usando as credenciais sob as quais a chamada OPENQUERY foi feita. Dependendo de como seu aplicativo é criado, isso pode ou não ser desejável. Se a autenticação SQL Server em vez de autenticação do Windows é usada, as credenciais do SQL serão ser transmitidas para o diretório. Problemas de autenticação também ocorrerá se o serviço de diretório de destino não oferece suporte à autenticação do Windows. Para obter mais informações sobre como usar ADSI para consultar esses servidores LDAP, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
251195Como usar ADSI para consultar um servidor LDAP de terceiros
Se não for desejável para contatar o diretório usando as mesmas credenciais como a chamada OPENQUERY , um sp_addlinksrvlogin pode ser usado para alterar a identidade sob a qual um servidor remoto é contatado. Quando o sp_addlinksrvlogin é implementado ADSI irá chamar uma ligação simples para o serviço de diretório de destino com as informações especificadas nos parâmetros rmtuser e rmtpassword . É importante observar que uma ligação simples irá transmitir as credenciais para o servidor de diretório em texto não criptografado. Isso tem a vantagem que será compreendido por vários servidores de diretório, mas uma desvantagem é que o nome de usuário e a senha estará visíveis em um monitor de rede. Para obter mais informações sobre simples vincula consulte:
ldap_simple_bind_s
http://msdn.microsoft.com/en-us/library/aa366995.aspx
Depois de adicionado, sp_addlinksrvlogin podem ser removidos chamando sp_droplinkedsrvlogin .

Limitações

O processo de utilização da instrução OPENQUERY para extraem informações de um servidor LDAP apresenta algumas limitações. As limitações podem ser evitadas em alguns casos, mas em outros o design do aplicativo deve ser alterado. Um aplicativo externo ou objeto COM que usa a ADSI para recuperar as informações do servidor LDAP e, em seguida, criar uma tabela no SQL usando o ADO ou outros métodos de acesso a dados é outro método viável.

A primeira limitação é que propriedades com valores múltiplos não podem ser retornadas no conjunto para o SQL Server de resultados. ADSI lerá as informações do esquema do servidor LDAP que define a estrutura e a sintaxe das classes e atributos usados pelo servidor. Se o atributo é solicitado do servidor LDAP é definido no esquema como sendo valores múltiplos não pode ser retornado em uma instrução OPENQUERY.

É comum para um servidor de diretório para impor uma limitação do servidor no número de objetos que serão retornados para uma determinada consulta. Isso é para impedir ataques de negação de serviço e a sobrecarga de rede. Para consultar o servidor de diretório corretamente, consultas grandes devem ser divididas em várias menores. Uma maneira de fazer isso é por meio de um processo chamado paginação. Enquanto paginação está disponível através do provedor OLEDB do ADSI, não há nenhuma maneira disponível para executá-la de uma consulta distribuída SQL. Isso significa que o número total de objetos que podem ser retornados de uma consulta é o limite do servidor. No Active Directory do Windows 2000, o limite de servidor padrão é 1.000 objetos. Obter mais informações sobre paginação podem ser encontradas no seguinte tópico MSDN Library:
Paginação com IDirectorySearch
http://msdn.microsoft.com/en-us/library/aa746414(VS.85).aspx
Para obter mais informações sobre como modificar o limite do servidor para maxPageSize usando NTDSUtil, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
315071Como exibir e definir diretiva LDAP no Active Directory usando Ntdsutil.exe

Referências

Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
187529Como usar o ADO para acessar objetos através de um provedor ADSI LDAP
Mais informações, incluindo uma amostra, podem ser encontradas na seção ADSI do Platform SDK, mais informações sobre quais podem ser encontradas no seguinte site da Microsoft:
http://www.microsoft.com/downloads/details.aspx?FamilyId=149187AC-7008-4F49-A00A-26DCEBE0FC32&displaylang=en

O link acima também possui informações sobre onde obter o download para vários SDKs do Windows na parte inferior da página em sectiont denominada: "O que outros tem ser download".

Propriedades

ID do artigo: 299410 - Última revisão: terça-feira, 11 de abril de 2006 - Revisão: 5.5
A informação contida neste artigo aplica-se a:
  • Microsoft Active Directory Service Interfaces 2.5
  • Microsoft Active Directory Service Interfaces 2.5
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft Active Directory Service Interfaces 2.5
Palavras-chave: 
kbmt kbdswadsi2003swept kbinfo KB299410 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 299410

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com