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?
Version imprimable
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?
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/
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 ?
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...
Travail préparatoire :Citation:
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 ?
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...
Citation:
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/
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:
Salut,
tu dois décocher conserver la stratégie de mot de passe.
PS : Sa doit exister normalement sur le serveur par defaut, non ?
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 ?
Tu as réalisé cela :
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.Citation:
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.
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))
Citation:
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.
salut,
j'ai enfin réussi à me connecter à ma base de données:yaisse2::yaisse2:,donc la réponse à ma question initiale que j'ai posé:
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)Citation:
OUI IL EST POSSIBLE DE SE CONNECTER A UNE BASE DE DONNEES SQL SERVER 2005 EXPRESS TOURNANT SOUS WINDOWS XP DEPUIS LINUX
pour verifier la conection depuis le shell linux:Code:
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
Code:# isql MONDSN Ton_User Ton_Mot_De_Passe