Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CONNEXION DISTANTE À SQL SERVER 2005


Information sur le tutorial

Catégorie :Divers Date de création : 02/04/2007 15:35:53 Vu : 20 442 fois

Note :
9,67 / 10 - par 3 personnes
9,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note


Description

Certaines éditions de SQL Server 2005 sont limitées par défaut en accès local pour des questions de sécurité. Les éditions Express et Developer sont dans cette situation, voici comment permettre l’accès distant à ces éditions, ainsi que les différents aspects à prendre en ligne de compte lorsque l'on connecte en local, et losque l'on choisis de connecter à distance par la suite.

Tutorial

Autoriser les accès distants

L’accès distant se configure par un des outils livré dans toutes les éditions de SQL Server 2005 « SQL Server Surface Area Configuration » ou « Configuration de la surface d'exposition SQL Server ».

Cet outil permet de configurer les accès aux services de SQL Server, ainsi que les fonctionnalités qui y sont disponibles. La plupart des fonctionnalités sensibles sont désactivées (tel que xp_cmdshell) et les connexions distantes ne sont pas autorisées (par défaut) sur les éditions Express et Developer.

L’outil se trouve dans le menu « Démarrer » / « Tous les programmes » / « Microsoft SQL Server 2005 » / « Outils de Configuration » ou « Configuration Tools ».

Pour tout ce qui est gestion des services et des connexions allez dans « Configuration de la surface d'exposition pour les services et les connexions » ou « Surface Area Configuration for Services and Connections »

Cliquez sur le nom de l’instance qui vous intéresse (ici MSSQLSERVER qui est le nom de l’instance par défaut, si vous êtes sous SQL Server Express ce sera plus vraisemblablement SQLEXPRESS), puis « Database Engine » / « Remote Connexions » puis sur la partie droite « Local and remote connections » / « Using TCP/IP only » (où une des autres options suivant les cas) ou en français « Moteur de base de données » / « Connexions distantes » et à droite « Connexions locales et distantes » / « Connexion TCP/IP uniquement ».

Cliquez sur OK, et fermez le programme, votre instance de SQL Server est désormais accessible à distance.

Instances nommée avec port dynamique & SQL Browser

« SQL Browser » est un service dont le rôle est d’écouter sur le port 1434 en UDP, c’est le port où anciennement SQL Server 2000 répondait aux questions du type : « A quel port est joignable l’instance XXXX ? ».

Ce n’est plus le service de base de données qui est chargé de cela, pour plusieurs raisons, l’une d’entre elle étant que plusieurs services peuvent supporter la notion d’instance nommée (Analysis Services, etc.) sous SQL Server 2005.

Mais pourquoi est ce nécessaire ? Tout simplement parce qu’en TCP/IP seule l’instance par défaut a un port fixe (1433) toutes les autres instances fonctionne en allocation de port dynamique. Ce qui fait qu’une instance nommée a de fortes chances d’obtenir un nouveau port TCP a chaque démarrage de son service. Le SQL Brower permet au client de demander le port de l’instance qui porte tel ou tel nom et ainsi de pouvoir s’y connecter directement.

Dans ce genre de situation le service SQL Browser doit être démarré en permanence. Pour cela allez dans « Démarrer » / « Tous les programmes » / « Microsoft SQL Server 2005 » / « Outils de Configuration » ou « Configuration Tools ».

Ouvrez « SQL Server Configuration Manager » ou « Gestionnaire de Configuration SQL Server ». Puis assurez-vous que le service « SQL Server Browser » est bien démarré.

Pour faire en sorte que ce service démarre à chaque démarrage de Windows cliquez sur celui-ci avec le bouton droit, puis sélectionnez « Propriétés » ou « Properties ».

Allez dans l’onglet « Service » puis au niveau de « Start Mode » ou « Mode de démarrage » sélectionnez « Automatic » ou « Automatique »

Cliquez ensuite sur OK. Pour démarrer le service faites bouton droit sur celui-ci puis choisissez « Démarrer » ou « Start ».

Instances nommées avec port fixe

Il est possible de configurer une ou plusieurs instances de SQL Server pour qu’elle utilise un port TCP fixe. L’instance par défaut, elle, utilisera toujours le port 1433 par défaut et sera donc en configuration de port fixe. Il est cependant possible de changer ce numéro de port.

Pour configurer cela, allez dans « Démarrer » / « Tous les programmes » / « Microsoft SQL Server 2005 » / « Outils de Configuration » ou « Configuration Tools », puis ouvrez « SQL Server Configuration Manager » ou « Gestionnaire de Configuration SQL Server ».

Dans « SQL Server 2005 Configuration réseau » ou « SQL Server 2005 Network Configuration » (dans mon cas je suis sur un système 64 bits, c’est pour cette raison que la partie configuration 32bits est marquée (32bits)).

Choisissez l’instance à configurer, puis double cliquez sur TCP/IP.

Cliquez sur l’onglet « IP Addresses » ou « Adresses IP ».

Dans la section « IP All » ou « Toutes IP » (à mon que vous ne souhaitiez cette configuration que pour une adresse), renseignez le numéro de port que vous souhaitez utiliser, et enlevez le 0 de l’allocation de port dynamique.

Le numéro de port TCP est compris en 1 et 65535, cependant n’utilisez ni des valeurs trop hautes (utiliser pour les translations d’adresse, et les communications avec les serveurs), ni trop basses (allouées à des services existant présent ou non sur votre machine). Le plus simple, vérifiez avec netstat si le port est actuellement utilisé :

netstat -A

Il vous renverra la liste de tous les ports actuellement à l’écoute sur votre machine, vous pourrez en déduire le port à utiliser pour votre serveur.

Cliquez sur OK, votre serveur est dorénavant accessible via un port TCP fixe.

Côté client - Accès par fichier

Pour accéder à un serveur SQL, il y a plusieurs solution, SQL Server 2005 en ajoute une de plus : l’accès par fichier(s).

En fait SQL Server 2005 est un serveur de base de données, mais pour éviter le fait que la base de données soir déjà être installée sur une machine pour pouvoir l’utiliser, Microsoft à ajouté la possibilité d’accéder à une base de données SQL Server en référençant le/les fichier(s) de base de données. Ceci pour faciliter les déploiements avec utilisation de base de données en local.

On voit bien ici que l’on référence un fichier, qui est le fichier principal de base de données (extension MDF). La chaîne de connexion correspondante est la suivante :

Data Source=.\SQLEXPRESS;AttachDbFilename="C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_Data.mdf";Integrated Security=True;Connect Timeout=30;User Instance=True

Deux choses sont intéressantes, on référence le fichier et le serveur. Quand on se connecte de cette manière il est nécessaire d’avoir un serveur SQL Server 2005 s’exécutant sur la même machine, sinon il est impossible de se connecter à cette base de données. Autre impératif, il vous faut tous les fichiers de la base de données (.MDF, .NDF et .LDF), même si vous pointez que sur le premier.

Que ce passe t il au niveau du serveur lorsqu’une telle connexion se produit… Et bien le serveur attache cette base de données, et ajoute celle-ci à la liste de ses bases de données. Lors de la déconnexion on fait l’inverse et on libère les fichiers de base de données.

Cela reviendrait à exécuter la commande suivante sur le serveur de base de données :

CREATE DATABASE AdventureWorks ON (FILENAME = C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_Data.mdf) FOR ATTACH'

Comme ce type d’accès n’est que local, si vous souhaitez permettre un accès distant à votre base de données, exécutez la commande ci dessus sur le serveur SQL, ce qui va avoir pour effet d’attacher « définitivement » votre base de données au serveur (donnez un nom correct à votre base de données pour la retrouver par la suite). Vérifiez bien aussi que vous avez accès à cette base de données avec un compte (soit que vous créez avec CREATE LOGIN, soit un compte Windows ou SQL existant).

Côté client - Accès à un serveur distant

Fabrice a déjà fait une présentation de la partie cliente de SQL Server 2005, vous pourrez la lire ici : http://www.asp-php.net/tutorial/sql-server/sqlncli.php

Pour la création de la connexion par interface graphique vous passez par ici

La chaîne de connexion est maintenant la suivante :

Data Source=.\SQLEXPRESS;Initial Catalog=AdventureWorks;Integrated Security=True

Ici j’ai toujours à faire à une connexion locale (le « . » fait référence à ma machine), et à une instance sur celle-ci.

Comment se connecter à une machine distante :

  • MaMachine
  • MaMachine\MonInstance
  • MaMachine,Port
  • Adresse
  • Adresse\MonInstance
  • Adresse,Port
  • Alias

Toutes ces 7 variantes fonctionnent, soit vous passez le nom de la machine, soit son adresse IP (en connexion TCP/IP). Si vous ne spécifiez ni le nom de l’instance, ni le numéro de port, on présume que vous vous adressez à l’instance par défaut.

Vous ne pouvez utiliser la forme \MonInstance que si le service SQL Browser tourne, sinon vous êtes obligé de passer par le numéro de Port de l’instance.

Pour faciliter les choses il est possible d’enregistrer un Alias, qui permet de masquer les détails de connexion. Du coup seul le nom de l’Alias est à fournir dans la chaîne de connexion sans plus de détails.

Pour créer ce type d’alias, allez dans l’outil de configuration client de votre machine. Il s’exécute via :

cliconfg

Pour plus de détail sur cette commande : http://blogs.codes-sources.com/christian/archive/2007/01/08/sql-server-configuration-du-client-sur-toutes-machines.aspx

Dans le second onglet vous pouvez créer un alias vers l’instance SQL Server de votre choix.

On retrouve ici toutes les informations à renseigner pour la création d’une Alias.

Cet Alias est bien entendu à créer sur le poste client, et sur tous les postes client en ayant besoin.

02 avril 2007 15:41:14 :
Quelques corrections
10 avril 2007 13:47:01 :
Suppression des - et ' qui donnait des ?
signaler à un administrateur
Commentaire de stouf59 le 02/04/2007 22:21:25

Merci pour ce tutorial simple et concis !!

A mon humble avis, un plus serait d'aborder aussi le paramétrage d'accès à distance des autres services de SQL Server (entre autre ceux de Reporting) grâce à VS et/ou SQL Server Management Studio si cela est possible avec les questions de sécurités (j'ai la problématique de devoir gérer plusieurs serveurs chez différents clients et de devoir passer par des VPNs... bref des solutions pas très souples)

Stouf59
Utilisateur "light" d'SQL Server depuis la version 6...

signaler à un administrateur
Commentaire de prince de desert le 12/12/2007 02:25:20

merci bcp pour vs cours.
pardon qlq'1 me donner la méthode de telecharger ces cours

signaler à un administrateur
Commentaire de NICOLAS24112000 le 24/06/2008 18:13:50

Aprés de nombreux essais, je n'arrive toujours pas à me connecter...
L'essai que je fais : configurer mon pc portable en serveur, et pc fixe en pc client. J'ai tout configurer, lorsque j'essaie de me connecter avec Microsoft SQL Server Management Studio Express, j'ai toujours ce message d'erreur :

TITRE : Se connecter au serveur
------------------------------

Impossible de se connecter à USER-3D4D8CA057\SQLEXPRESS.

------------------------------
INFORMATIONS SUPPLÉMENTAIRES :

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 dû au fait que les paramètres par défaut de SQL Server n'autorisent pas les connexions à distance. (provider: Interfaces réseau SQL, error: 26 - Erreur lors de la localisation du serveur/de l'instance spécifiés) (Microsoft SQL Server, Erreur : -1)


Merci pour votre aide.

signaler à un administrateur
Commentaire de NICOLAS24112000 le 08/07/2008 10:54:32

Toujours pas de nouvelles, j'essaie encore et encore, mais rien n'y fait. Je dois passer à côté de qque chose et je ne sais pas de quoi ?
Quelqu'un peut-il venir à mon aide ?
Merci

signaler à un administrateur
Commentaire de remifalcon le 11/08/2008 15:05:57

J'ai le même probleme que nicolas
Si quelqu'un à une solution

signaler à un administrateur
Commentaire de tariksamir64 le 16/08/2008 20:13:58

bonjour
j ai installé sql server 2005 sur mon pc et crée un bd. j ai un portable connecte en wifi à un modem/routeur(club internet).je voudrais developper une application en vb6 sur mon portable(client) et me connecter sur ma bd (serveur).comment faire pour que mon portable puisse reconnaitre mon serveur?
merci

signaler à un administrateur
Commentaire de FENETRES le 16/10/2008 10:57:51

Pourquoi se limiter au protocole TCP/IP ? Pour ma part, je coche systématique la case " Using both TCP/IP and named pipes ".

signaler à un administrateur
Commentaire de FENETRES le 16/10/2008 11:08:49

Dans le cas de canaux nommés il vous faut utiliser le pilote référencé ci-dessous :
SQL_DRIVER = 'SQLOLEDB.1'

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,016 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.