4.1 EF FC: CRÉER une BASE de données de refus d'autorisation de base de données "maître"
Entity Framework 4.1 le Premier Code fonctionne très bien avec SQLEXPRESS
sur localhost
. Cependant, je suis maintenant prêt à vous connecter à un régulière SQL 2008 server
.
- J'ai créé une nouvelle base de données "NewEfDatabase".
- Ensuite changé mon "
ApplicationServices
"connectionString
dansWeb.config
à point à ma nouvelle base de données avec sécurité intégrée.
Mais ensuite, j'obtiens cette erreur:
"CREATE DATABASE permission denied in database 'master'.
"
Donc...
a) les autorisations qui n'4.1 EF FC besoin sur SQL server pour faire son travail?
b) puis-je configurer une base de données vide sur SQL 2008
pour EF 4.1 CF, ou dois-je le laisser faire tout le travail pour moi? (Je ne suis pas sûr de mon DBA apprécierait de laisser mon EF de l'application ont des droits à faire n'importe quoi à l'extérieur d'une base de données particulière)
OriginalL'auteur Dan Sorensen | 2011-04-07
Vous devez vous connecter pour publier un commentaire.
Avez-vous assurez-vous de configurer votre Base de données de l'Initialiseur de
null
dans votre code:Le tout intégré dans les implémentations si l'initialiseur peut essayer de supprimer ou de créer une nouvelle base de données. L'erreur que vous obtenez indiquent que EF essayé de supprimer ou de créer une base de données, mais n'a pas le droit de le faire dans votre instance de SQL Server. La ligne ci-dessus est la seule option pour éviter ce général, et est adapté (je pense même absolument nécessaire) pour vivre des environnements de toute façon, où vous ne voulez pas que la suppression accidentelle (en raison de changements de modèle ou de quelque chose).
Oui, vous devez migrer les DB à la cible exemple, si vous définissez l'initialiseur de
null
. Dans ce cas, DB schéma et modèle EF doit correspondre alors, EF ne mettre à jour ou de recréer le schéma et probablement lancer des exceptions si le schéma et le modèle ne correspondent pas.Ma façon de gérer cela est de créer une liste de noms de développeur Pc, et je n'appelle que SetInitializer (à re-créer la base de données) si l'application est en cours d'exécution sur l'un de ces Pc. Pour toute autre machine, je suppose que la base de données aura été déployé il y a déjà.
Je l'ai regardé une nouvelle question sur les étapes à effectuer pour passer de développement de la migration ici: stackoverflow.com/questions/5585446/...
Kyralessa: j'aime bien ce concept. Merci
OriginalL'auteur Slauma
Configuration d'une connexion pour votre application au sein de SQL server. Donner à l'utilisateur l'autorisation de dbcreator (par un clic droit sur la connexion, allez dans les rôles de serveur, et de cocher la case "dbcreator" case à cocher)
OriginalL'auteur Schmidty
Essayez de ne pas utilisé le windows intégré autorisation, à l'instar de ce que j'ai répondu dans ce post: EF Premier Code {"CRÉER une BASE de données de refus d'autorisation de base de données "maître"."}.
Il a travaillé pour moi.
OriginalL'auteur cheny