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

MS SQL Server Discussion :

connection à SQL Server 2005 depuis Linux


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 76
    Points : 53
    Points
    53
    Par défaut connection à SQL Server 2005 depuis Linux
    Bojour,
    est-il possible de se connecter à une base de données SQL Server 2005 Express
    installé sur un Windows XP, quand on travaille sous Linux?
    ou faut-il utiliser l'Enterprise Edition?

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut SQL serveur express ou enterprise.
    Je ne pense pas qu'il existe une restriction particulière sur sql serveur express, il s'agit d'un serveur plus léger mais cela reste un serveur.

    Il semble que sous unix ( php,perl,java,c ), on utilise la librairie suivante pour communiquer avec sql serveur. je vous laisse essayer, je ne suis pas un pro sous unix... :o))

    http://www.freetds.org/

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 76
    Points : 53
    Points
    53
    Par défaut
    Merci pour ta réponse,
    en fait je n'ai posté mon message qu'après avoir fait des recherches sur le net.
    j'ai effectivement installé les librairies requises à partir du site que tu m'as indiqué. or le problème d'après ce qu'il me semble concerne les droits d'accès à la base de données ainsi que l'obtention d'un nom de domaine du serveur SQL (nécessaire à la connexion d'après certains tutos).
    je n'arrive pas à modifier les droits d'accès avec MS SQL Server Management Studio Express.
    quelqu'un a-t-il une idée ?

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut connection à sql serveur 2005 depuis linux.
    depuis avril 2007, que je suis sur ce forum, c'est la premiere fois que je vois une connexion depuis linux...

    si l'on fait abstraction que cette librairie a surement été developpée à l'époque de sql serveur 2000 et que l'on risque de rencontrer certains problèmes de compatibilité... J'ai du temps ce soir donc je peux essayer de t'aider...

    Merci pour ta réponse,
    en fait je n'ai posté mon message qu'après avoir fait des recherches sur le net.
    j'ai effectivement installé les librairies requises à partir du site que tu m'as indiqué. or le problème d'après ce qu'il me semble concerne les droits d'accès à la base de données ainsi que l'obtention d'un nom de domaine du serveur SQL (nécessaire à la connexion d'après certains tutos).
    je n'arrive pas à modifier les droits d'accès avec MS SQL Server Management Studio Express.
    quelqu'un a-t-il une idée ?
    Travail préparatoire :

    La première chose que tu vas devoir faire, c'est passer le serveur sql serveur 2005 du mode d'authentification windows ( destine au client windows et active directory ) au mode d'authentification mixte ( sql serveur ) destine aux clients linux-unix...

    La seconde chose à faire est de creer un login SA / mot de passe administrateur.

    Ensuite tu affectes le role sysadmin à ton login SA.

    Connexion :

    Pour te connecter à un serveur sql serveur 2005, tu as besoin de connaitre le nom de la machine windows ( ex : pluton ) et l'instance sur laquelle a ete cree ta base ( ex : sqlexpress )
    Tu dois connaitre aussi le nom de l'utilisateur : SA dans notre cas et son mot de passe.

    Pour info : Un article que j'ai écris, on peut encore faire mieux mais sur la sécurité, je n'ai pas encore trouver un article en francais exhaustif...

    Il s'agit d'une présentation générale de la sécurité d'une base de données sql server 2005 en transact sql.

    Choix du mode d'authentification de sql serveur.
    authentification windows : seuls les utilisateurs windows authentifiés peuvent accéder à sql serveur. Ce mode est hautement recommandé dans le cas d'un domaine car il permet de mettre en place toute une politique de sécurité à l'aide d'active directory ( audit...).
    authentification mixte : Ce mode d'authentification permet la connexion à sql serveur à des utilisateurs non windows.
    Le mode d'authentification du serveur, choisi lors de l'installation, peut être modifié à l'aide de sql server management studio.
    Les connexions.
    Les connexions, appelé aussi identifiant par microsoft, ou login par les utilisateurs peuvent être crée par sql server management studio ou par transact sql.
    Pour créer une connexion windows : CREATE LOGIN [DomaineUtilisateur] FROM WINDOWS
    Pour créer une connexion windows à un groupe : CREATE LOGIN[DomaineGroupe] FROM WINDOWS
    Le groupe administrateur de windows possède une connexion de ce type.
    Pour créer une connexion sql server : CREATE LOGIN nom_utilisateur WITH PASSWORD='password'
    L'utilisateur SA possède une connexion de ce type.
    Pour supprimer une connexion windows : DROP LOGIN [DomaineUtilisateur]
    Pour supprimer une connexion windows à un groupe : DROP LOGIN [DomaineGroupe]
    Pour supprimer une connexion sql serveur : DROP LOGIN nom_utilisateur
    La propriété WITH DEFAULT_DATABASE=nom base_données permet de définir une base par défaut au login mais n'accorde aucunement le droit d'y accéder. Pour le droit d'utilisation d'une base de données, lisez le chapitre relatif aux utilisateurs de bases de données et le compte GUEST.
    Rôle serveur.
    SYSADMIN : toute activité est possible sur le serveur.
    DBCREATOR : les membres peuvent créer, modifier, supprimer et restaurer toute base de données.
    DISKADMIN : Ce rôle est utilisé pour gérer les disques physiques.
    PROCESSADMIN : Les membres peuvent interrompre les processus en cours dans une instance SQL Serveur.
    SECURITYADMIN : Les membres peuvent gérer les connexions et leurs propriétés. Ils peuvent accorder ( GRANT ), refuser ( DENY ) et révoquer ( REVOKE ) les autorisations au niveau serveur, au niveau base de donnée. ils peuvent réinitialiser les mots de passes. Ce rôle n'a aucune permission pour affecter des autorisations de bases de données.
    BULKADMIN : les membres peuvent executer l'instruction BULK INSERT.
    SERVERADMIN : les membres peuvent changer les options de configuration coté serveur et arrêter le serveur.
    SETUPADMIN : les membres peuvent ajouter ou supprimer des serveurs liés et executer certaines procédures systèmes.
    PUBLIC : Toute les connexions valides sont membre de ce groupe.
    Il est possible d'affecter à une connexion un rôle serveur par la commande suivante :
    EXECUTE sp_addsrvrolemember nom_login, role_serveur
    Par défaut, le groupe des administrateurs windows a le rôle SYSADMIN.
    Par défaut, l'utilisateur SA a le rôle SYSADMIN.
    Par conséquent, les utilisateurs qui se connectent sous ces identités peuvent tout faire sur le serveur ( configuration, création/destruction objets ).
    En général, si l'on souhaite mettre en place d'une sécurité spécifique, un compte possède simplement le rôle par défaut PUBLIC et ne possède aucun droit sur son environnement. Pour permettre à un rôle PUBLIC d'agir, il va falloir relié le login à un utilisateur auquel on affectera des droits.
    Un cas particulier permet à un utilisateur ayant le rôle PUBLIC d'agir sur une base de données, lorsque l'utilisateur de bases de données GUEST possède des droits, comme le droit de se connecter à une base de données, ou le droit de lire les données d'une base.
    Les utilisateurs.
    Pour créer un utilisateur en Transact SQL , on utilise la commande :
    CREATE USER nom_utilisateur FOR LOGIN nom_login WITH DEFAULT_SCHEMA = schema_par_defaut
    si vous n'utilisez pas la commande optionnel WITH DEFAULT_SCHEMA, alors le schéma par défaut sera dbo, le schéma de la base de données. Le ou les schémas d'un utilisateur sont utilisés par sql serveur pour résoudre les noms d'objet référencés sans leur nom complet.
    Une fois l'utilisateur créé, vous pouvez lui accorder un rôle de bases de données.
    les rôle de bases de données.
    Afin de limiter le travail de l'administrateur de bases de données dans le cas d'une base de plusieurs dizaines d'utilisateurs, au lieu d'affecter des droits sur chaque objet, on peut affecter des droits globaux. Il est aussi possible de créer ses propres rôle de bases de données.
    PUBLIC : par defaut.
    DB_ACCESSADMIN : l'utilisateur qui possède ce droit pour modifier un USER ou créer un schéma.
    DB_BACKUPOPERATOR : Les membres peuvent sauvegarder la base de données.
    DB_DATAREADER : les membres peuvent lire les données dans l'ensemble des tables.
    DB_DATAWRITER : les membres peuvent ajouter, supprimer, ou modifier des données dans les tables utilisateurs.
    DB_DDLADMIN : les membres peuvent executer toute commande DDL dans une base de données.
    DB_DENYDATAREADER : les membres ne peuvent lire les tables utilisateurs.
    DB_DENYDATAWRITER : les membres ne peuvent écrire dans les tables utilisateurs.
    DB_OWNER : les membres peuvent effectuer toute les opérations de maintenance et de configuration y compris la suppression.
    DB_SECURITYADMIN : les membres peuvent modifier l'appartenance à un rôle et gérer les autorisations.
    On affecte un rôle à un utilisateur avec la procédure stockée :
    EXECUTE sp_addrolemember nom_role,nom_utilisateur
    Création d'un rôle de base de données spécifique et affectation de droits à ce rôle.
    USE mabase
    GO
    CREATE ROLE Rolemabase;
    GRANT CREATE TABLE,CREATE VIEW,CREATE PROCEDURE TO Rolemabase;
    On autorise la création d'objet de bases de données pour les utilisateurs possédant le rôle RolemaBase.
    Les schémas.

    Un schéma est un ensemble d'objets de bases de données appartenant à un utilisateur. Marcel dans notre cas. La différence entre sql serveur 2000 et sql serveur 2005. c'est qu'avec sql serveur 2005, le schéma est indépendant de l'utilisateur. Ainsi, lors qu'un créateur de schéma quitte l'entreprise, on peut réaffecter son schéma à un autre utilisateur trés simplement. On utilise les schémas pour créer des espaces de noms, l'équivalent d'une librairie, avec les objets de bases de données.
    Syntaxe :
    USE MaBase;
    CREATE SCHEMA usine AUTHORIZATION Marcel
    CREATE TABLE liaison (source int, cost int, partnumber int)
    GRANT SELECT TO maurice
    DENY SELECT TO martine
    Autorisations d'instruction sur une base de données.
    L'authorisation de création d'objet de bases de données est gérée par l'autorisation d'instruction
    GRANT/REVOKE ALLInstructions TO user
    GRANT : affecte
    REVOKE : supprime
    Instructions : BACKUP DATABASE, BACKUP LOG, CREATE DATABASE ,CREATE PROCEDURE, CREATE TABLE, CREATE VIEW
    Affectation de droit d'accès sur un objet.
    GRANT ALLAutorisations ON Table(colonne)Vue(colonne)Procedure_stockee TO User WITH GRANT OPTION AS User
    ALL Accorder tous les droits.
    Autorisations : CREATE, ALTER, DROP, CONTROL, CONNECT, SELECT, EXECUTE, UPDATE, DELETE , INSERT, TAKE OWNERSHIP, VIEW DEFINITION, BACKUP
    WITH GRANT OPTION : Permet à l'utilisateur bénéficiaire de transmettre ces droits à un autre.
    AS User : User est un compte possédant les droits nécessaires pour accorder des autorisations.
    lien : http://pcaboche.developpez.com/article/sql-server/gestion-droits/
    lien : http://sql.developpez.com/sqlserver/securisation/

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 76
    Points : 53
    Points
    53
    Par défaut
    Bonjour,
    voilà je crois que j'ai suivi tes conseils en
    plus de ce tutoriel:gestion des droits
    pourtant je n'ai pas encore résolu mon problème. voici une capture d'écran sur le message d'erreur que j'obtiens:
    Images attachées Images attachées  

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut solution
    Salut,

    tu dois décocher conserver la stratégie de mot de passe.

    PS : Sa doit exister normalement sur le serveur par defaut, non ?

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 76
    Points : 53
    Points
    53
    Par défaut
    salut,
    j'ai fais ce que tu m'as indiqué avant de lire ton message en m'inspirant de ceci:
    solution

    et le user a été crée facilement. Peut tu m'éclaircir sur ce que je dois faire ensuite ?

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut connection linux.
    Tu as réalisé cela :

    Travail préparatoire :

    La première chose que tu vas devoir faire, c'est passer le serveur sql serveur 2005 du mode d'authentification windows ( destine au client windows et active directory ) au mode d'authentification mixte ( sql serveur ) destine aux clients linux-unix...

    La seconde chose à faire est de creer un login SA / mot de passe administrateur.

    Ensuite tu affectes le role sysadmin à ton login SA.
    A condition que tu as ouvert SQL serveur à l'aide Outils de configuration \ configuration de la surface d'exposition. En effet SQL serveur 2005 est ouvert seulement en local par defaut. Ouvre TCP/IP Et Canaux Nommé en Acces distant. verifie si tu peux avec Toad for sql serveur que tu peux te connecter à la base à distance.

    Tu es maintenant prêt pour l'accès linux. Tu auras besoin des informations ci dessous pour te connecter, c'est obligatoire: le serveur/instance, le type de connection ( mixte ) , l'utilisateur sa et le mot de passe.

    Creuse ta librairie pour savoir comment l'utiliser... bonne chance et tiens nous au courant, ce serait incroyable que unix travaille avec un produit microsoft :o))

    Connexion :

    Pour te connecter à un serveur sql serveur 2005, tu as besoin de connaitre le nom de la machine windows ( ex : pluton ) et l'instance sur laquelle a ete cree ta base ( ex : sqlexpress )
    Tu dois connaitre aussi le nom de l'utilisateur : SA dans notre cas et son mot de passe.

  9. #9
    Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 76
    Points : 53
    Points
    53
    Par défaut
    salut,
    j'ai enfin réussi à me connecter à ma base de données,donc la réponse à ma question initiale que j'ai posé:
    OUI IL EST POSSIBLE DE SE CONNECTER A UNE BASE DE DONNEES SQL SERVER 2005 EXPRESS TOURNANT SOUS WINDOWS XP DEPUIS LINUX
    je te remercie d'abord <<<ylarvor>>> pour ton aide, et voici donc les étapes par lesquelles je suis passé: (enplus de ce que tu m'as dit)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    /etc/odbc.ini    #contenu du fichier /etc/odbc.ini 
    [MONDSN]
    Driver = TDS
    Description = MS-SQL database
    Servername = MONDSN
    Database = Etudiant
     
    /etc/odbcinst.ini   #contenu du fichier   /etc/odbcinst.ini 
    [ODBC]
    Trace = No
    TraceFile = /root/tmpsql
     
    [TDS]
    Description = Driver FreeTDS 0.62 protocol v4.2
    Driver = /usr/lib/odbc/libtdsodbc.so
    Setup = /usr/lib/odbc/libtdsS.so
    FileUsage = 1
     
    /etc/freedts/freetds.conf        #contenu du fichier  /etc/freedts/freetds.conf 
    [MONDSN]
    host = 192.168.1.11
    port = 1702
    tds version = 4.2
    try domain login = no
    try server login = yes
    pour verifier la conection depuis le shell linux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    # isql MONDSN Ton_User  Ton_Mot_De_Passe

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/09/2008, 21h20
  2. problème de connection à SQL server 2000 depuis Excel
    Par tribaleur dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/09/2008, 12h08
  3. Accès à SQL Server 2005 depuis Excel
    Par Franck_P dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/09/2008, 12h34
  4. connections sql server 2005
    Par mohamed_75 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 07/04/2007, 00h48
  5. Probleme de connection SQL Server 2005
    Par MayOL69bg dans le forum C#
    Réponses: 9
    Dernier message: 19/03/2007, 17h25

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