बनाने के लिए हम अपने मचान सर्वर के पर के लिए एक सरल ASP.NET MVC आवेदन की तैनाती कर रहे हैं और हम निम्न त्रुटि हो रही है जब EntityFramework मौजूदा डेटाबेस विस्थापित करने की कोशिश करता है की कोशिश करता है।EntityFramework माइग्रेशन एक मौजूदा डेटाबेस
CREATE DATABASE permission denied in database 'master'.
स्थिति इस प्रकार है:
- यह पहली बार माइग्रेशन चलाने है।
- डेटाबेस पहले से मौजूद है (यह वास्तव में एक एम्म्ब्राको डेटाबेस है)।
यह निम्न विधि (EntityFramework से) प्रकट होता झूठी देता है, जब यह स्पष्ट रूप से सच लौटना चाहिए:
System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists()
डेटाबेस प्रारंभकर्ता निम्नलिखित कोड है:
Database.SetInitializer(new MigrateDatabaseToLatestVersion<DataContext, Configuration>());
स्वत: माइग्रेशन बंद कर दिया गया है, क्योंकि हम कोड-आधारित माइग्रेशन का उपयोग कर रहे हैं।
सही डेटाबेस और उपयोगकर्ता के लिए connectionstring अंक कि डेटाबेस पर db_owner अधिकार है। उपयोगकर्ता को सर्वर पर अन्य तालिकाओं का कोई अधिकार नहीं है।
क्या यह एक आम समस्या है? क्या किसी के लिए इसका समाधान पता है?
Thnx!
आप इसे स्थापित करने के गुरु नहीं होने के लिए के रूप में है कि एक प्रणाली डेटाबेस के नाम है और मुद्दों के –
संभव डुप्लिकेट का कारण बन सकता कोशिश कर सकते निष्पादित करने में सक्षम है [डाटाबेस 'मास्टर' एंटिटी फ्रेमवर्क माइग्रेशन] में डाटाबेस अनुमति को अस्वीकार कर दिया गया है (http://stackoverflow.com/questions/11814762/create-database-permission-denied-in-डेटा-master-entity-framework-migratio) –
डेटाबेस कनेक्शनस्ट्रिंग में नाम मास्टर नहीं है (क्योंकि यह वास्तव में एक सिस्टम डेटाबेस है)। यह एक मौजूदा डेटाबेस है और उपयोगकर्ता को केवल उस डीबी के अधिकार हैं। EntityFramework डेटाबेस बनाने का प्रयास करता है क्योंकि EnsureDatabaseExists रिपोर्ट करता है कि कोई डेटाबेस नहीं है। उसके बाद ईएफ डीबी बनाने की कोशिश करता है, लेकिन उपयोगकर्ता के पास इसके लिए कोई अधिकार नहीं है। हालांकि, यह समस्या नहीं है। ईएफ यह पता लगाने में विफल रहता है कि डीबी वास्तव में कुछ कारणों से मौजूद है –