IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Accès aux données Discussion :

[SQL Server] Connexion distante a un serveur


Sujet :

Accès aux données

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 137
    Points : 69
    Points
    69
    Par défaut [SQL Server] Connexion distante a un serveur
    Bonjour,

    Je fais une nouvelle fois appel a vous concernant un projet développé en Visual Basic .NET (Windows Form) ainsi que l'utilisation de SQL Server.

    Jusqu’à maintenant, j'effectuais mes connexion uniquement en local, j'utilisais la chaîne de connexion suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Server=CYRILLE\SGG;Database=GestAtt;Trusted_Connection=True;"
    Pas de problème d'utilisation local.

    Mais, maintenant, il faut que ma base de donnée soit accessible d'un autre PC sur le même réseau local.

    En utilisant cette chaîne de connexion, j'ai obtenu l'erreur 26 sur le pc du réseau. J'ai alors verifier que la case d'acces sur le reseau etait bien cocher. J'ai pu constater qu'elle l'etait deja. D'ailleurs, je demanderais confirmation sur la case, es ce bien celle ci ?



    J'ai ensuite changer de chaine de connexion, en utilisant celle ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "Data Source=CYRILLE\SGG;Initial Catalog=GestAtt;Integrated Security=SSPI;" _
    & "User ID=CYRILLE\HPFT;Password=0000;"
    Pas de souci local, mais toujours la meme erreur sur le pc distant.

    J'ai essayer de créer de nouveaux utilisateurs, mais pas moyen de les créer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE USER Joe
     
    FOR LOGIN Joe
     
    WITH DEFAULT_SCHEMA = dbo
    Avec le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msg*15007, Niveau*16, État*1, Ligne*1
    'Joe' is not a valid login or you do not have permission.
    J'ai aussi consulter la FAQ developpez.net (http://sqlserver.developpez.com/faq/...ion#Connexion2), en lisant la premiere ligne, j'ai alors essayer de changer le nom par l'ip :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Server=192.168.1.17\SGG;Database=GestAtt;Trusted_Connection=True;"
    Sauf que la, la connexion n'etait plus possible en local, je m'en suis arreter la.

    Comme je suis sur un reseau local, ce peut il que le firewall bloque l'acces ?
    Es ce la configuration de mon SQL Server qui peche, ma chaine de connexion ou encore autre chose que j'ai fais de travers ?

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Entre tes deux machines, il faut vérifier qu'il n'y ait rien qui empêche les communications. Je fais bien sûr référence aux Firewalls (logiciel ou hardware). La liste des ports utilisés est disponible ici : Configure the Windows Firewall to Allow SQL Server Access.

    Par défaut c'est le port 1433 (TCP) qui est utilisé. Il faut aussi ouvrir le port 1434 (TCP).

    Si tu utilises une instance particulière, il faut activer le service SQL Server Browser et ouvrir le port 1434 (UDP).

    Si jamais la topologie de ton réseau est un peu complexe, il faut aussi t'assurer que les règles NAT nécessaires ont été créées.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 137
    Points : 69
    Points
    69
    Par défaut
    Alors, je vient d'ouvrir ces 3 ports sur le firewall de Windows XP. Et j'ai changer d'erreur ! L'erreur 26 a laissé place a l'erreur 28 (http://msdn.microsoft.com/fr-fr/library/bb326495.aspx)

  4. #4
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    sur ton serveur, tu ouvre l'outil sqlserver "Gestionnaire de configuration".
    Tu vérifie
    - que, pour "Configuration de sql native client\protocoles clients" que le protocole TCP est activé,
    - que, pour "configuration du réseau SQLServer\protocoles pour TonInstance", que le protocole TCP est activé

    Éventuellement la même chose est à faire sur les pc clients
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 137
    Points : 69
    Points
    69
    Par défaut
    Bonjour,

    Le protocole client TPC/IP était déjà activé mais le protocole pour mon instance ne l’était pas. J'ai activer le protocole, redémarrer le serveur et essayer la connexion a l'aide de ces deux chaines de connexion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     strConn = "Server=192.168.1.14\SGG;Database=GestAtt;Trusted_Connection=True;"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     strConn = "Server=CYRILLE\SGG;Database=GestAtt;Trusted_Connection=True;"
    Pour ces deux test, j'ai obtenu un timeout. Comme si le serveur / instance n'etait pas sur le reseau.
    Tout continu de fonctionner correctement en local, meme avec l'ip, ce qui n'etait pas le cas avant.

  6. #6
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    As-tu vérifier aussi coté client si les protocoles étaient autorisés ? (par contre je sais pas si les outils sont installés, et je sais pas comment le vérifier sans les outils)

    Normalement il n'est pas nécessaire, mais essaye en démarrant le service SQLServer Browser sur le serveur.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 137
    Points : 69
    Points
    69
    Par défaut
    Je vais installer les outils sur le poste distant des que possible.
    En attendant, le SQL Server Browser est déjà en fonctionnement sur le serveur, mais je n'ai pas bien compris ce que je doit faire avec !

  8. #8
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Le service Browser sert simplement à rediriger les demandes client (connexion/requête...) vers l'instance demandée. C'est utile si l'utilisation des ports dynamiques est activée. Mais il sert aussi si on utilise un port statique pour chaque instance.

    En (très) gros la communication se déroule un peu comme suit :
    1 - Le client envoie un message au serveur pour lui dire qu'on veut accéder à l'instance "SGG".
    2 - Le Browser vérifie qu'elle existe, et si oui, il retourne son port.
    3 - Le client reçoit le port, puis l'utilise pour les futurs échanges.

    J'ai oublié de le préciser, il faut aussi vérifier que le port utilisé par ton instance "SGG" soit ouvert en TCP. Je ne crois pas qu'il soit nécessaire de l'ouvrir en UDP mais tu peux essayer pour être sûr.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 137
    Points : 69
    Points
    69
    Par défaut
    Alors, je vient de mettre les ports de mon instance en fixe, et j'ai débloquer ces ports ci. Et cette fois ci j'obtiens enfin une erreur intéressante !

    J'ai une erreur de login :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Login failed for 'CYRILLE\Invité'
    CYRILLE c'est le nom de mon PC. Ce souci de login vient probablement du fait que je suis passer a coter de la création d'utilisateurs (comme indiqué dans mon post initial).

  10. #10
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    cela vient aussi du fait que tu utilise l'authentification Windows dans ta chaine de connexion. C'est la session Windows du client qui est envoyée comme authentification. Sur un domaine c'est valable puisque la session comme le serveur sont authentifiés par le domaine.

    Sur un worksgroup, il vaut mieux passer par une authentification SQL et donc sur des utilisateurs créés dans SQL Server.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  11. #11
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 137
    Points : 69
    Points
    69
    Par défaut
    C'est justement la que je nage totalement !

    Dans mon poste initial, j'ai décrit ma difficulté a créer un nouvel utilisateurs.
    Et je vient de vérifier, le mode d'authentification de mon instance est cocher sur 'Mode d'authentification SQL Server et Windows'.



    Je passerais volontiers a une authentification SQL. Je pense avoir un seul utilisateurs existant dans ma base (nommé dbo, qui porte le nom d’accès de mon PC puis de ma session en cours), qui s’authentifie a l'aide de l'authentification Windows.

    Et pour créer de nouveaux utilisateurs c'est le flou. Je n'ai pas réussi a créer de nouveaux utilisateurs, que ce soit par l'interface graphique ou par requête, je n'ai donc pas réussi a créer de nouveaux accès pour ma base de donné.

  12. #12
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 137
    Points : 69
    Points
    69
    Par défaut
    J'ai réussi a créer mes utilisateurs dans menu Sécurité du serveur. Depuis le début je cherchais dans le même menu mais de la base de donné x.x

    Merci a vous pour votre aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Sqlconnexion au serveur sql server 2000 distant
    Par jabbour0000 dans le forum ADO.NET
    Réponses: 4
    Dernier message: 04/05/2011, 07h49
  2. [ODBC] Connexion distante avec un serveur (Qt et SQL Server)
    Par marps dans le forum Bases de données
    Réponses: 1
    Dernier message: 28/03/2011, 14h51
  3. [SQL-Server] connexion a un serveur SQL server 2000 distant
    Par tajajtsidi dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 03/07/2009, 14h15
  4. connexion à une base sql server 2005 distante
    Par jeandu69 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 03/04/2008, 12h46
  5. [SQL-Server] Connexion entre SQL Server et IIS sur 2 serveurs différents
    Par kenzo080 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 06/09/2006, 11h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo