MSDE : une base de données intégrée


 

MSDE est le noyau de SQL Server de Microsoft. MSDE est gratuit et téléchargeable. On l'installe sur la station expérimentale en complément de Web Matrix qui est son environnement obligé. MSDE est en tâche de fond et n'offre pas d'interface utilisateur, ni d'outils propres. Ici, nous utilisons MSDE 2000.

Pour installer une nouvelle instance de Desktop Engine, procédez comme suit :

  1. Ouvrez une fenêtre d'invite de commandes.

     
  2. Depuis l'invite de commande, utilisez la commande cd pour naviguer vers le dossier contenant l'utilitaire d'installation de MSDE 2000 SP3a.

    cd c:\MSDESP3aFolder\MSDE

    c:\MSDESP3aFolder représente soit le chemin d'accès au dossier vers lequel vous avez extrait les fichiers MSDE 2000 SP3a, soit le dossier Desktop Engine SP3a situé sur le CD-ROM SQL Server 2000 SP3a.

  3. Exécutez la commande suivante :
  4. rebooter la station

 

Pour permettre l'accès à la base de données à un utilisateur donné :

Un paramétrage est nécessaire pour ouvrir l'accès à une base créée. La base (tables, structure, données...) peut être créée dans Matrix : les tests des pages ASPX avec la base fonctionnent. MAIS la base n'est pas accessible lorsqu'on ouvre la page avec le navigateur SI on n'a pas au préalable effectué ce paramétrage. Voir la documentation relative à MSDE sur le site de Web Matrix. Une ambiguïté de cette documentation toutefois avait bloqué nombre d'expérimentateurs. Voici le paramétrage indiqué dans la documentation :

osql -E -S [SERVER] -Q "sp_grantlogin '[USERNAME]'"
osql -E -S [SERVER] -d [DATABASE] -Q "sp_grantdbaccess '[USERNAME]'"
osql -E -S [SERVER] -d [DATABASE] -Q "sp_addrolemember 'db_owner', '[USERNAME]'"

Que faut-il entendre par [USERNAME] ? La première réponse est venue des internautes américains dès le 9/07/2002 : [NOM_DE_L'ORDINATEUR\ASPNET].
 

Il faut savoir que lors de l'installation du SDK Framework .NET, un "LOCAL user account" est créé, nommé "ASPNET". C'est ce nom qui est attendu par le système lorsqu'on utilise l'authentification Windows (par défaut). Remarque : le choix du mode d'authentification est fait lors de la définition de l'accès à la base. Les autres modes (NT et SQL) nécessitent la création d'un compte d'accès.
Conclusion : par défaut, mettre "[nom machine]\ASPNET" pour "USERNAME".

Donc, sous DOS, aller dans :
 

C:\Program Files\Microsoft SQL Server\80\Tools\Binn


et exécuter
 

osql -E -S localhost -Q "sp_grantlogin 'HP762FR\ASPNET'
osql -E -S localhost -d Personnel -Q "sp_grantdbaccess 'HP762FR\ASPNET'"
osql -E -S localhost -d Personnel -Q "sp_addrolemember 'db_owner', 'HP762FR\ASPNET'
 

"Personnel" est le nom de la base ; "HP762FR" est le nom de mon ordinateur. Quant à ASPNET, vous le savez maintenant.