La difficulté de l'ajout d'un lié SQL server
Je suis en train d'extraire des données à partir d'un Serveur SQL server distant. Je peux accéder au serveur distant à l'aide de l'authentification SQL; je n'ai pas eu de chance, en utilisant les mêmes informations d'identification avec sp_addlinkedserver.
Je suis en train d'essayer quelque chose comme ceci:
Exec sp_dropserver 'Remote', 'droplogins'
go
EXEC sp_addlinkedserver
@server='Remote',
@srvproduct='',
@provider='SQLNCLI',
@datasrc='0.0.0.0'
EXEC sp_addlinkedsrvlogin
@useself='FALSE',
@rmtsrvname='Remote',
@rmtuser='User',
@rmtpassword='Secret'
Select Top 10 * from Remote.DatabaseName.dbo.TableName
Voici ce que j'obtiens:
Fournisseur OLE DB "SQLNCLI" du serveur lié "à Distance" a retourné le message "Délai de connexion expiré". Fournisseur OLE DB "SQLNCLI" du serveur lié "à Distance" a retourné le message "Une erreur s'est produite lors de l'établissement d'une connexion au serveur. Lors de la connexion à SQL Server 2005, cet échec peut être provoqué par l' fait que, selon les paramètres par défaut de SQL Server n'autorise pas à distance les connexions.". Msg 53, Niveau 16, État 1, Ligne 0 Fournisseur de canaux nommés: impossible d'ouvrir une connexion à SQL Server [53].
Encore une fois, je peux accéder au serveur directement (dans SQL Management Studio) à l'aide de ces informations d'identification, il n'est donc pas un problème avec mon réseau ou des informations d'identification.
La plupart des exemples que j'ai vu en ligne semble impliquer des comptes de domaine Windows, contrairement à SQL sécurité des connexions. N'est-ce pas travailler avec l'authentification SQL?
OriginalL'auteur Herb Caudill | 2009-05-08
Vous devez vous connecter pour publier un commentaire.
C'est le travail avec l'authentification sql. En fait, il est plus facile, car vous n'avez pas à configurer Kerberos si vous utilisez l'authentification SQL.
Une chose est source de confusion au sujet de vos messages d'erreur, votre adresse est une adresse IP : 123.45.678.90
votre message d'erreur est en train de parler sur les canaux Nommés. Serait-ce un indice?
Vous n'avez pas à référencer le serveur en TSQL par son adresse IP. Si vous ajoutez un alias sur le serveur local, pointant vers le serveur distant, vous pouvez donner un nom judicieux. Référant par adresse IP n'est évidemment pas satisfaisante.
Merci, cela m'a conduit à la solution correcte.
Répondez-moi jusqu'alors, mon bon homme, j'ai envie d'un score élevé =D
OriginalL'auteur Noel Kennedy
Pour résoudre le problème ci-dessus j'ai modifié la définition du Serveur Lié pour spécifier le protocole TCP spécifiquement:
Cela a fonctionné pour moi. Cette méthode m'a permis également de spécifier un port non standard pour le serveur distant:
J'espère que cette aide
OriginalL'auteur cannonball
Pensé à elle, grâce à une ligne d'instructions dans le SMS assistant d'interface utilisateur pour l'ajout d'un des serveurs liés:
"If SQL Server is selected, then the Linked Server name is also the network name of the server."
Je pensais que le nom du serveur lié est juste l'arbitraire d'un alias.
Cela fonctionne comme un charme - c'est une honte que j'ai pour le type de la propriété intellectuelle (entre parenthèses) à chaque fois que je veux utiliser ce serveur lié, mais il vous en avez.
Pas sûr de ce que tu veux dire - il n'y a pas un nom de domaine associé au serveur de base de données, qu'une adresse IP.
Ouais, j'ai ce même problème aujourd'hui. J'ai essayé de travailler autour d'elle en spécifiant SQLOLE (ou autre) en tant que fournisseur et de lui donner une chaîne de connexion, dans ce cas @server est en fait un arbitraire nom logique... mais ce ne serait pas tout à fait se connecter sur la machine de production (j'ai oublié laquelle). Donc je suis retourné à cette méthode et abstrait, l'emplacement physique à l'aide d'une vue sur les tables d'intérêts, ce qui a bien fonctionné jusqu'ici.
serveur et rmtserver sont en fait des alias. Ils n'ont pas à correspondre à l'adresse IP ou le nom de serveur DNS. Seulement datasrc est important.
OriginalL'auteur Herb Caudill
Si c'est de la faute sur des canaux Nommés lorsque vous spécifiez une adresse IP, essayez le préfixe de l'adresse IP avec "tcp:" et voir si elle aide à mettre sur le droit chemin.
Pour ceux qui cherchent à se connecter par le nom de domaine swap @datasrc='tcp:0.0.0.0" avec @datasrc='mydomain.com', pas de SERVEUR= comme dans de nombreux autres postes de autour de.
OriginalL'auteur great_llama
sp_configure 'Requêtes Distribuées Ad Hoc',1
prochaine
reconfigurer avec remplacement
avez coché la case SQL Surface configuraton-->Databaseengine-->Remoteconnections-->Loacal et remoteconnections-->shouild être à l'Aide de TCP/IP et des canaux nommés option cochée
(si pas de choisir cette option et redémarrez-le)
cela a pour résoudre le problème
Fournisseur OLE DB "SQLNCLI" du serveur lié "à Distance" a retourné le message
"Une erreur s'est produite lors de l'établissement d'une connexion au serveur.
Lors de la connexion à SQL Server 2005, cet échec peut être provoqué par l'
fait que, selon les paramètres par défaut de SQL Server n'autorise pas à distance
les connexions.".
OriginalL'auteur rmdussa
Parfois, les protocoles ont été activées et la configuration de la surface permet des connexions à distance, mais le service SQL Server Browser n'a pas été redémarré depuis la configuration a été défini. Cela signifie que la configuration n'est pas active.
Essayez de redémarrer SQL Server Browser comme une étape de dépannage si votre configuration de tous les paramètres semblent corrects.
Mike
OriginalL'auteur Mike