Efectuar um SQL distribuída consulta por através de ADSI

Traduções de Artigos Traduções de Artigos
Artigo: 299410 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo fornece informações sobre como utilizar o fornecedor OLEDB de interfaces de serviços do Active Directory (ADSI) do SQL Server para executar uma consulta distribuída.

Mais Informação

Requisitos e informações gerais

Uma consulta distribuída permite o programador povoar uma tabela do SQL Server ou vista com dados no Active Directory ou outro servidor (LIGHTWEIGHT Directory Access Protocol). Para efectuar uma consulta distribuída utilizando ADSI, o servidor tem de ter do SQL Server 7.0 ou posterior. ADSI é um componente de sistema do Windows 2000, não adicional no necessário instalar esse sistema operativo. Se o sistema operativo do servidor estiver Windows NT 4.0, a extensão de cliente de Active Directory (DSClient) para o Windows NT 4.0 deve estar instalada. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
288358Como instalar a extensão de cliente do Active Directory
É possível encontrar um procedimento passo-a-passo para efectuar uma consulta distribuída a utilizar ADSI em "Aderir heterogéneos dados" no seguinte artigo da MSDN Library:
Associar dados heterogéneos
http://msdn.microsoft.com/en-us/library/aa746379.aspx
Quando o comando OPENQUERY é publicado, o SQL Server invocará fornecedor de OLEDB do ADSI, ADsDSOObject foi definido na função sp_addlinkedserver . O fornecedor passará a consulta subjacentes ADSI lDirectorySearch funções da interface. Estas funções ADSI fará com que as chamadas LDAP necessárias para o servidor pretendido. As respostas do servidor, em seguida, serão passadas cópia camadas mesmas para o SQL Server.

Pode ser utilizada uma consulta em linguagens de LDAP ou SQL. Poderá encontrar informações adicionais sobre Procurar com o fornecedor de OLEDB do ADSI no seguinte artigo da MSDN:
Procurando no Active Directory
http://msdn.microsoft.com/en-us/library/aa746468(VS.85).aspx
Uma discussão sobre as duas linguagens encontra-se em subtópico seguinte na MSDN:
Dialecto
http://msdn.microsoft.com/en-us/library/aa772377(VS.85).aspx
Se for especificado um asterisco (*) para a lista de atributos, o fornecedor de OLEDB ADSI devolve um conjunto de registos que contém apenas o ADsPath do cada entrada. ADsPath é um cliente gerada atributo e é a garantia de ser devolvido como um atributo de valor singled.

Uma cadeia de ligação sem servidor é um que não contenha o nome ou endereço IP do servidor de destino. Sem servidor as associações são utilizadas para localizar o melhor controlador de domínio do Windows 2000 para processar o pedido. As associações sem servidor não podem ser utilizadas quando o servidor de destino não é um controlador de domínio Windows 2000 para o domínio predefinido. Para obter informações adicionais sobre associações sem servidor, consulte
Ligação sem servidor e RootDSE
http://msdn.microsoft.com/en-us/library/ms677945.aspx
No exemplo a documentação técnica, irá ser contactado o servidor LDAP utilizando as credenciais em que foi efectuada a chamada OPENQUERY . Dependendo de como a aplicação foi concebida, isto pode ou não ser desejável. Se for utilizada a autenticação do SQL Server em vez da autenticação do Windows, as credenciais SQL vão ser transmitidas para o directório. Problemas de autenticação também ocorrerá se o serviço de directório de destino não suporta a autenticação do Windows. Para obter mais informações sobre como utilizar ADSI para consultar estes servidores LDAP, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
251195Como utilizar ADSI para consultar um servidor LDAP de outros fabricantes
Se não for aconselhável contactar o directório utilizando as mesmas credenciais como chamada OPENQUERY , um sp_addlinksrvlogin pode ser utilizado para alterar a identidade sob a qual é contactado o servidor remoto. Quando estiver implementada sp_addlinksrvlogin ADSI invocará um enlace simples ao serviço de directório de destino com as informações especificadas nos parâmetros rmtuser e rmtpassword . É importante ter em atenção que uma ligação simples irá transmitir as credenciais para o servidor de directório em texto simples. Tem a vantagem que irá ser compreendido por vários servidores de directório, mas uma desvantagem é que o nome de utilizador e palavra-passe estará visíveis no monitor de rede. Para mais informações sobre simples liga consulte:
ldap_simple_bind_s
http://msdn.microsoft.com/en-us/library/aa366995.aspx
Uma vez adicionada, pode ser removido sp_addlinksrvlogin chamando sp_droplinkedsrvlogin .

Limitações

O processo de utilizar a instrução OPENQUERY para extrair informações de um servidor LDAP sofrer de algumas limitações. As limitações podem ser evitadas em alguns casos, mas noutros a concepção de aplicações tem de ser alterada. Uma aplicação externa ou um objecto COM que utiliza ADSI para obter as informações do servidor LDAP e, em seguida, criar uma tabela de SQL utilizando ADO ou outros métodos de acesso de dados é outro método viável.

A primeira limitação é que propriedades de valor múltiplos não podem ser devolvidas no conjunto para o SQL Server de resultados. ADSI lerá informações de esquema do servidor LDAP que define a estrutura e a sintaxe de classes e atributos utilizados pelo servidor. Se o atributo é pedido a partir do servidor LDAP estiver definido no esquema como estando com valores múltiplos não pode ser devolvida numa instrução OPENQUERY.

É normal para um servidor de directório para impor uma limitação do servidor no número de objectos que vão ser devolvidos para uma determinada consulta. Isto serve para impedir ataques denial-of-service e a sobrecarga de rede. Para consultar correctamente o servidor de directório, o consultas grandes devem ser divididas em várias pequenas. Uma forma de fazer é através de um processo denominado paginação. Enquanto paginação está disponível através do fornecedor de OLEDB do ADSI, não é actualmente possível disponível para executar uma consulta distribuída SQL. Isto significa que o número total de objectos que podem ser devolvidos para uma consulta é o limite do servidor. No Windows 2000 Active Directory, o limite de servidor predefinido é 1.000 objectos. Poderá encontrar mais informações sobre a paginação 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 utilizando o NTDSUtil, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
315071Como visualizar e definir política LDAP no Active Directory utilizando Ntdsutil.exe

Referências

Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
187529Como utilizar ADO para aceder a objectos através de um fornecedor de ADSI LDAP
Podem encontrar mais informações, incluindo uma amostra, na secção ADSI do Platform SDK, mais informações sobre o qual podem ser encontradas no seguinte Web site da Microsoft:
http://www.microsoft.com/downloads/details.aspx?FamilyId=149187AC-7008-4F49-A00A-26DCEBE0FC32&displaylang=en

Hiperligação existente acima contém também informações sobre onde obter a transferência para vários Windows SDK na parte inferior da página em sectiont intitulado: "O que outros são transferência".

Propriedades

Artigo: 299410 - Última revisão: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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