2011-03-29 18 views
23

बनाने में विफल रहता है मैं वीएस -2010 में डाटाबेस प्रोजेक्ट देख रहा हूं, यह विचार यह है कि मुझे कुछ ऐसा चाहिए जो मैं डेटाबेस स्कीमा (स्रोत नियंत्रण में) का ट्रैक रखने के लिए उपयोग कर सकता हूं और "नई इंस्टॉल" स्क्रिप्ट उत्पन्न करने और स्क्रिप्ट बदलने की क्षमता।विजुअल स्टूडियो 2010 - आयातित डेटाबेस के साथ डाटाबेस प्रोजेक्ट

जब मैं एक नया डेटाबेस प्रोजेक्ट विज़ार्ड बनाता हूं और अपना मौजूदा डेटाबेस स्कीमा आयात करता हूं, तो यह "निर्माण" नहीं करेगा।

SQL03006: User: [scanner] has an unresolved reference to Login [scanner].

एसक्यूएल है कि इस त्रुटि उत्पन्न:

CREATE USER [scanner] FOR LOGIN [scanner];

उपयोगकर्ता "स्कैनर" एक लॉगिन डेटाबेस मैं आयातित में परिभाषित किया गया है मैं त्रुटि मिलती है। मुझे नहीं पता कि यह मुझे क्या कर रहा है, और Google बहुत फेंक नहीं रहा है। कोई विचार?

उत्तर

16

लॉगिन वास्तव में सर्वर इंस्टॉल के मास्टर डेटाबेस में परिभाषित किया गया है। CREATE USER कथन को किसी मौजूदा लॉगिन पर इंगित करने की आवश्यकता है अन्यथा यह त्रुटियां। डेटाबेस प्रोजेक्ट सर्वर स्तर पर लॉगिन के बारे में पता नहीं है। या तो आप लॉग इन को संभालने के लिए एक सर्वर प्रोजेक्ट बना सकते हैं, या आप अपने डेटाबेस प्रोजेक्ट में सुरक्षा ऑब्जेक्ट्स की जांच बंद कर सकते हैं। अधिक जानकारी के लिए डेमेट्री एम द्वारा उत्तर देखें: http://social.msdn.microsoft.com/Forums/eu/vstsdb/thread/1f8226fe-b791-4344-8735-3d38307e8664

+4

टूटा हुआ दोनों लिंक –

+0

दोनों लिंक में मेरी कंपनी के Forefront गेटवे के अनुसार ट्रोजन शामिल हैं –

8

मैं SQL Server 2008 R2 डेटाबेस प्रोजेक्ट के लिए विजुअल स्टूडियो 2012 का उपयोग कर रहा हूं। @ जुदाह द्वारा सूचीबद्ध विकल्प अब काम नहीं करते हैं।

अब वे सेटिंग्स को कॉन्फ़िगर जबकि तुलना एक स्कीमा कर प्रतीत:

राइट क्लिक करें डेटाबेस परियोजना> चुनें 'स्कीमा तुलना करें'> चुनें 'सेटिंग' गियर आइकन> चुनें 'ऑब्जेक्ट प्रकार 'टैब>

लॉगिन गैर-अनुप्रयोग-स्कोप्ड हैं। डेटाबेस भूमिकाएं, अनुमतियां, भूमिका सदस्यता, और उपयोगकर्ता सभी एप्लिकेशन-स्कोप्ड हैं।

दुर्भाग्यवश, इन्हें संरक्षित करने के लिए मुझे ढूंढने का एकमात्र तरीका स्कीमा तुलना को सहेजना है। यदि आप इसे किसी टीम पर साझा कर रहे हैं और किसी स्कीमा तुलना के लिए प्रोजेक्ट/डेटाबेस (या सर्वर) सेटिंग्स चाहते हैं तो यह थोड़ा असुविधाजनक हो सकता है।

हालांकि यह काम पूरा हो जाता है, हालांकि।

1

आप रोल बनाने के लिए उपयोगकर्ता स्क्रिप्ट बनाने के लिए बदल सकते हैं। तो "लॉगिन उपयोगकर्ता नाम के लिए उपयोगकर्ता उपयोगकर्ता नाम बनाएं" के बजाय;

"रोल [उपयोगकर्ता नाम] प्राधिकरण डीबीओ का उपयोग करें;"

यह एक हैक है, लेकिन जब तक आप अपनी परियोजना में उपयोगकर्ताओं और भूमिकाओं से निपटने के लिए होने नहीं कर रहे हैं, तब तक आप खुशी से निम्न कर सकते हैं:

GRANT निष्पादित वस्तु :: पर [dbo]। [sp_name] TO [userName];