24 votos

SQL Server a SQL server servidor vinculado de instalación

Por favor explique lo que es necesario para configurar un Servidor vinculado de SQL server.

Servidor de SQL 2005 inicios de sesión de windows solamente Servidor de B es la misma (SQL 2005 inicios de sesión de windows solamente)

Un servidor se ejecuta windows XP El servidor B ejecuta Windows Server 2003

Tanto los servicios de SQL Server se ejecuta en la misma cuenta de dominio. He iniciado en mi estación de trabajo con una cuenta de dominio que tenga derechos administrativos en ambos Servidores SQL.

Nota: estos son SQL Server 2005 SP2 - he tenido viejo revisiones señaló a mí, pero los que ya se aplican.

El problema que tengo es este error: "error de inicio de Sesión del usuario 'NT AUTHORITY\ANONYMOUS LOGON'. (Microsoft SQL Server, " Error: 18456)"

18voto

evilhomer Puntos 261

Desde Mi comprensión de este problema es un "SALTO" de la cuestión.

es decir, usted está tratando de utilizar Un servidor de transmitir sus datos de inicio de sesión (con SSPI) al Servidor B.

En SQL Server 2005 que han añadido un montón de problemas de seguridad que hacer esto más difícil de lo que debería ser. Las palabras "Autenticación de Kerberos" se convertirá en el baño de la mayoría de sys-administradores/DBA vidas de las personas. Efectivamente se utiliza para la autenticación de paso a través.

Aquí están los fundamentos de lo que usted necesita. 1) Los servidores (a y B) es necesario establecer en Active Directory(AD) con la delegación de Kerberos. (esto se establece a través de su panel de administración de active directory)

2) El servicio de cuenta de que sus Servidores SQL a ejecutar bajo la necesidad de tener habilitada la delegación también (esto también se establece a través de su panel de administración de active directory). - si no se ejecuta bajo una cuenta de servicio, debe crear uno.

3) Los Servidores deben tener SPN definido para la instancia y el HOST y el nombre de la máquina. (El uso de una herramienta SetSPN en las herramientas de soporte de windows)

Herramientas de soporte (SetSPN es en este juego) http://www.microsoft.com/downloads/details.aspx?FamilyID=96a35011-fd83-419d-939b-9a772ea2df90&DisplayLang=en

(Información general acerca de cómo agregar un SPN) http://technet.microsoft.com/en-us/library/bb735885.aspx

4) puede que tengas Que configurar tu DB a "digno de confianza"

ALTERAR la BASE de datos de confianza en

5) Después de tener todo esto hace reiniciar sus instancias.

6) a Continuación, intenta crear su servidor vinculado de nuevo.

Finalmente puede probar la conexión a SQL Server. Esto debería de funcionar bien si lo tienes todo configurado correctamente.

SELECT *
FROM OPENDATASOURCE('SQLNCLI',
    'Data Source=ServerB;Integrated Security=SSPI;'
    ).MASTER.dbo.syscolumns

Esto le dirá a su conexión tipo de autenticación.

select auth_scheme from sys.dm_exec_connections where session_id=@@SPID

Usted desea conseguir 'KERBEROS' aquí y no 'NTLM'.

Es un slippy pendiente, KERBEROS y de Paso a través de la delegación, palo con ella y que te des cuenta.

Referencias Kerberos http://blogs.msdn.com/sql_protocols/archive/2005/10/12/479871.aspx

http://blogs.msdn.com/sql_protocols/archive/2006/12/02/understanding-kerberos-and-ntlm-authentication-in-sql-server-connections.aspx

http://blogs.iis.net/brian-murphy-booth/archive/2007/03/09/the-biggest-mistake-serviceprincipalname-s.aspx

Otras manifestaciones del problema http://www.sqlservercentral.com/Forums/Topic460425-359-1.aspx

http://msdn2.microsoft.com/en-us/library/aa905162(sql.80).aspx

http://msdn2.microsoft.com/en-us/library/ms189580.aspx

Espero que todo esto te ayuda.

3voto

Tim Lentine Puntos 153

También puede utilizar SQL Server Management Studio (SSMS) para administrar \ crear servidores vinculados, así que si usted está más cómodo con la interfaz gráfica de usuario. Para ello:

  1. Lanzamiento de SSMS y conectarse a una de las instancias de SQL Server que desea vincular
  2. Ampliar "los Objetos de Servidor" en el Explorador de Objetos
  3. Haga clic en "Servidores Vinculados" y seleccione "Nuevo Servidor Vinculado"
  4. En el "Nuevo Servidor Vinculado" de diálogo, seleccione "SQL Server" como el Tipo de Servidor y entrar en la instancia de SQL Server que desea enlazar.
  5. En la "Seguridad" de la página, seleccione el modo en que los usuarios se autentican de la actual servidor para el servidor vinculado. Usted ha mencionado que ambos servidores están configurados para utilizar Inicios de sesión de Windows. Si este es el caso, de conformidad con la sección con la etiqueta "Para un inicio de sesión que no se definen en la lista anterior, conexiones:" probablemente elegiría la opción etiquetada "con el inicio de Sesión actual contexto de seguridad".

Tenga en cuenta que esto supone que los usuarios que han inicios de sesión en el servidor también tiene inicios de sesión en el servidor B.

1voto

N8g Puntos 368

Me estoy volviendo loco con el mismo problema! Recuerdo haber hecho esto con 2000 fue siempre fácil. He estado en todo google y no puedo conseguir que esto funcione. Exactamente la misma configuración, tanto de los servidores que se ejecutan en una cuenta de dominio, autenticación de Windows.

Estoy tratando de utilizar canalizaciones con nombre en lugar de TCP y al menos tengo un error diferente:

EXEC sp_addlinkedserver 
    @server='statler', 
    @srvproduct='', 
    @provider='SQLNCLI', 
    @datasrc='np:statler', 
    @provstr='Integrated Security=SSPI'

-- Then I try this:
select net_transport, auth_scheme 
from statler.master.sys.dm_exec_connections 
where session_id=@@spid

/*

Getting closer, but still fails:

OLE DB provider "SQLNCLI" for linked server "statler" returned message 
    "Login timeout expired".
OLE DB provider "SQLNCLI" for linked server "statler" returned message 
    "An error has occurred while establishing a connection to the server. 
    When connecting to SQL Server 2005, this failure may be caused by the 
    fact that under the default settings SQL Server does not allow 
    remote connections.".
Msg 5, Level 16, State 1, Line 0
Named Pipes Provider: Could not open a connection to SQL Server [5]. 
OLE DB provider "SQLNCLI" for linked server "statler" returned message 
    "Invalid connection string attribute".

*/

Esto podría tener algo que ver con la habilitación de los nombres de las tuberías, pero me puedo conectar a través de sqlcmd desde el servidor a servidor B como esta:

WALDORF:>  Sqlcmd.exe /E /Snp:statler

Si no se utiliza canalizaciones con nombre, y acaba de hacer:

New Linked Server
Server Type: SqlServer
Security: be made using the current login's security context

Me sale esto:

Login failed for user NT AUTHORITY\ANONYMOUS LOGIN

[Editar] comencé una discusión en Sql Server Central acerca de esto. Básicamente, tienes que hacer algo complicado de configuración relativa a la delegación de Kerberos para conseguir que esto funcione.

http://www.sqlservercentral.com/Forums/Topic574262-146-1.aspx

Decidí crear una sola, Sql limitada de inicio de Sesión de cuenta para controlar los enlaces de las consultas. Odio tener que recurrir a eso, pero parece más seguro que los cambios que tiene que hacer para que funcione con la autenticación de windows.

0voto

deadprogrammer Puntos 4521

Si usted hace una búsqueda en sp_addlinkedserver y sp_linkedservers, usted consigue algunos ejemplos. Es bastante sencillo de configurar.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: