Table des matières

Microsoft SQL Server 2005 Express Edition

Ce SGBD gratuit peut être très intéressant à utiliser, même s'il n'est pas vraiment destiné à être utilisé dans des grandes applications d'entreprises. Il peut être très utile pour des applications web développés en ASP.NET.

Sécurité et connectivité réseau

Par défaut, après une installation normale, SQL Server Express n'est pas configuré pour être utilisé en réseau. Il est configuré pour être accédé par des applications qui roulent sur le même ordinateur où il est installé.

La façon la plus facile de changer cela, est d'installer Microsoft SQL Server Management Studio Express si ce n'est pas déjà fait.

Instances utilisateurs ou partagées

Par défaut, chaque utilisateur sur un simple ordinateur a sa propre instance utilisateur de la base de données. Chaque utilisateur devient administrateur de sa propre instance. Chaque utilisateur est protégé des autres utilisateurs sur le même ordinateur, donc, ils ne partagent pas les données. Cela signifie que si Paul modifie les données dans son instance, cela n'aura pas d'effet sur les données de l'instance de Marie.

Il est facile de permettre aux utilisateurs sur une seule machine d'accéder à la même instance de la base de données, mais cela peut représenter des risques de sécurité. Ce problème peut être réglé par l'utilisation de rôles et de l'authentification des utilisateurs. Il y a deux modes d'authentification :

Rôles

Un rôle est une collection de permissions qui sont déterminés pour les utilisateurs selon leur type d'intervention sur la base de données. Par exemple, le DBA (Database administrator) a un rôle administrateur qui lui permet de tout faire sur la base de données. Une application peut avoir un rôle plus limité qui lui permet que d'accéder (lire) les informations sur une BD. Il existe des rôles déjà établis :

On peut créer d'autres rôles personnalisés qui raffinent les permissions par défaut.

Configurations

Donc, en résumé, il y a plusieurs façons d'utiliser SQL Server Express et voici ce que cela implique :

  1. Un ordinateur, un utilisateur
    • N'implique rien, configuration par défaut
  2. Un ordinateur, plusieurs utilisateurs
    • Configuration par défaut (instances utilisateurs)
    • Modification de la chaîne de connexion (instance partagée)
  3. Plusieurs machines, plusieurs utilisateurs
    • Modifier les paramètres réseau
    • Créer des logins
    • Assigner des rôles
    • Modifier la chaîne de connexion
    • Configurer le pare-feu

Chaine de connexion

Pour avoir une instance partagée dans une application .NET, il faut modifier le fichier app.config où se trouve la valeur de connectionString et changer User Instance à false. Le reste devrait rester le même.

Attacher une base de données à SQL Server

  1. Dans Microsoft SQL Server Management Studio Express, aller dans la liste de gauche
  2. Faire un clic droit sur Databases et cliquer sur Attach…
  3. Sous la liste Database to attach, cliquer sur Add…
  4. Trouver le fichier .MDF à inclure.

Permettre l'accès réseau

  1. Aller dans SQL Server Configuration Manager
  2. Sélectionner à gauche SQL Server 2005 Services
  3. Vérifier que le service SQL Server Browser est démarré.
  4. Sous SQL Server 2005 Network Configuration, aller dans Protocols for SQLEXPRESS
  5. Aller, à droite, dans les propriétés de TCP/IP.
  6. Il faut mettre la propriété Enabled à Yes.
  7. Dans l'onglet IP Addresses, il faut aussi mettre Enabled à Yes de la section IP1.

Changer l'authentification

Pour que des utilisateurs puissent se connecter à distance à la base de données, il faut changer le mode d'authentification qui est par défaut à Windows.

  1. Ouvrir Microsoft SQL Server Management Studio Express
  2. Aller dans les propriétés (clic droit) de l'instance de la base de donnée qui est démarrée et qui s'appelle NOM_ORDINATEUR\SQLEXPRESS.
  3. Dans la nouvelle fenêtre, sélectionner Security de la liste de gauche.
  4. Sous Server authentification, mettre à SQL Server and Windows Authentification mode
  5. Cliquez OK.

Créer des logins

  1. Sous l'instance de la base de données (NOM_ORDINATEUR\SQLEXPRESS), allez dans Security et Logins
  2. Vous pouvez voir des logins déjà existants
  3. Faites un clic droit sur Logins et choisir New Login…
  4. Entrez le Login name
  5. Sélectionnez SQL Server authentification et entrez le mot de passe deux fois
  6. Déselectionnez User must change password at next login au besoin.
  7. Spécifiez une base de données par défaut avec la liste déroulante Default database.
  8. À gauche, dans Server Roles, il est possible de spécifier les rôles.
  9. Cliquez sur le bouton OK.

Assigner un utilisateur à une BD

  1. Aller à la base de donnée vouloue, exemple Blogue dans le cas d'une base de données pour un blogue
  2. Étendre l'arbre et aller dans Security et Users.
  3. Faire un clic droit et choisir New user
  4. Dans le champ User name/Login name, tapez le nom de l'utilisateur voulu. Utiliser le bouton pour vérifier que l'utilisateur est reconnu.
  5. Plus bas, dans la liste de cases à cocher Database role membership, sélectionnez les rôles qui s'appliquent à l'usager, exemple db_owner.
  6. Cliquez OK.

Dernières configurations

  1. Ne pas oublier de permettre une règle dans le pare-feu qui permettent les connexions distantes à la base de données
  2. Redémarrer les services de la base de données pour que les configurations soient pris en compte.

Connecter une application web

La connexion entre l'application web et la base de données SQL Server 2005 Express se fera à l'aide d'ADO.NET 2.0.

Ressources

Source : LearnVisualStudio.NET, SQL Server 2005 Express Edition for Beginners, Understanding Security and Network Connectivity