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 :
- Authentification Windows
- Authentification mixte (SQL Server et Windows)
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 :
- sysadmin
- db_owner
- db_datareader
- db_datawriter
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 :
- Un ordinateur, un utilisateur
- N'implique rien, configuration par défaut
- Un ordinateur, plusieurs utilisateurs
- Configuration par défaut (instances utilisateurs)
- Modification de la chaîne de connexion (instance partagée)
- 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
- Dans Microsoft SQL Server Management Studio Express, aller dans la liste de gauche
- Faire un clic droit sur Databases et cliquer sur Attach…
- Sous la liste Database to attach, cliquer sur Add…
- Trouver le fichier
.MDF
à inclure.
Permettre l'accès réseau
- Aller dans SQL Server Configuration Manager
- Sélectionner à gauche SQL Server 2005 Services
- Vérifier que le service SQL Server Browser est démarré.
- Sous SQL Server 2005 Network Configuration, aller dans Protocols for SQLEXPRESS
- Aller, à droite, dans les propriétés de TCP/IP.
- Il faut mettre la propriété Enabled à Yes.
- 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.
- Ouvrir Microsoft SQL Server Management Studio Express
- 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
. - Dans la nouvelle fenêtre, sélectionner Security de la liste de gauche.
- Sous Server authentification, mettre à SQL Server and Windows Authentification mode
- Cliquez OK.
Créer des logins
- Sous l'instance de la base de données (
NOM_ORDINATEUR\SQLEXPRESS
), allez dans Security et Logins - Vous pouvez voir des logins déjà existants
- Faites un clic droit sur Logins et choisir New Login…
- Entrez le Login name
- Sélectionnez SQL Server authentification et entrez le mot de passe deux fois
- Déselectionnez User must change password at next login au besoin.
- Spécifiez une base de données par défaut avec la liste déroulante Default database.
- À gauche, dans Server Roles, il est possible de spécifier les rôles.
- Cliquez sur le bouton OK.
Assigner un utilisateur à une BD
- Aller à la base de donnée vouloue, exemple Blogue dans le cas d'une base de données pour un blogue
- Étendre l'arbre et aller dans Security et Users.
- Faire un clic droit et choisir New user
- 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.
- Plus bas, dans la liste de cases à cocher Database role membership, sélectionnez les rôles qui s'appliquent à l'usager, exemple
db_owner
. - Cliquez OK.
Dernières configurations
- Ne pas oublier de permettre une règle dans le pare-feu qui permettent les connexions distantes à la base de données
- 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