2009-11-06 5 views
1

Quelle est la méthode préférée pour installer un logiciel nécessitant SQL Server Express? Devriez-vous monter la base de données en utilisant un nouveau compte créé par un administrateur qui installe le logiciel?Quelle est la meilleure méthode pour monter le fichier .mdf de SQL Server Express dans un programme d'installation?

Si nous utilisons le compte SA il n'y a pas de problème au moment de l'installation, mais lors de l'exécution, il y a une erreur indiquant un problème avec le fichier LDF.

+0

Juste pour être clair - avez-vous joint un fichier MDF existant lors de l'installation? Si oui, je demanderais pourquoi c'est nécessaire (c'est une question directrice - pas une suggestion que vous faites quelque chose de mal!) – Murph

+0

Non, pas un fichier MDF existant sur la machine client. Nous déployons un MDF et LDF, montage de ce fichier et en cours d'exécution dans le problème – GWTF

Répondre

2

Merci Scott pour votre excellente question. Assurez-vous que SQLExpress a lu, écrit, modifié l'accès au dossier de déploiement qui contient le fichier de données. Ensuite, vous devez vous assurer que tous les utilisateurs qui accèdent à votre application peuvent modifier les données. Vous pouvez accorder un accès complet, mais ce n'est pas conseillé. Au lieu de cela, créez un compte d'utilisateur SQL local et accordez à l'utilisateur la possibilité de modifier votre base de données. Suivant veiller à ce que l'instance SQL a été mis en place pour un login en mode mixte par:

"USE [master] " & _ 
      "EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', REG_DWORD, 2 " 

Le créera au-dessus de ce fichier journal si les utilisateurs SQL ont la possibilité de modifier le répertoire !!

accorder Maintenant, l'utilisateur créé par:

"CREATE Login UName WITH PASSWORD = 'UPassword', DEFAULT_DATABASE=[MyDatabase], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF; " & _ 
     "exec sp_addsrvrolemember N'UName', sysadmin; " 

Maintenant, ajoutez cet utilisateur à tous les rôles que vous souhaitez, par exemple:

"USE [MyDatabase] " 
"EXEC sp_addrolemember N'db_datareader', N'User' " 

Il y a d'autres actions que vous pouvez choisir de prendre la utilisateur. Mais cela dépend de ce que vous essayez d'accomplir.

La dernière étape consiste à connecter votre application à l'aide de ce nouveau compte par:

Chaîne de connexion:

Data Source=***********\SQLEXPRESS;AttachDbFilename=****\Datafile.mdf;Initial Catalog=MyDatabase;Persist Security Info=True;User ID=UNAME;Password=UPassword" /> 
0

devrais-je dire « la volonté de créer au-dessus de ce fichier journal si les utilisateurs SQL ont la capacité pour modifier le répertoire !! " L'exécution de ce code en tant qu'administrateur lors de l'exécution créera le fichier journal;) ​​