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 :
cd c:\MSDESP3aFolder\MSDE
où 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.
setup INSTANCENAME="nom_station\dotnet" SAPWD="AStrongSAPwd"
où AStrongSAPwd est un mot de passe renforcé à assigner au login sa, et InstanceName le nom à assigner à cette instance.
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.