एमएस SQL ​​सर्वर प्रबंधन स्टूडियो का उपयोग किए बिना मैं SQL सर्वर में अपने डिफ़ॉल्ट डेटाबेस को कैसे बदल सकता हूं?


166

मैंने SQL सर्वर से एक डेटाबेस को गिरा दिया, हालांकि यह पता चला कि मेरा लॉगिन अपने डिफ़ॉल्ट के रूप में गिरा डेटाबेस का उपयोग करने के लिए सेट किया गया था। मैं कनेक्शन संवाद में 'विकल्प' बटन का उपयोग करके SQL सर्वर प्रबंधन स्टूडियो से कनेक्ट कर सकता हूं और कनेक्ट करने के लिए डेटाबेस के रूप में 'मास्टर' का चयन कर सकता हूं। हालाँकि, जब भी मैं ऑब्जेक्ट एक्सप्लोरर में कुछ भी करने की कोशिश करता हूं, यह मेरे डिफ़ॉल्ट डेटाबेस का उपयोग करके कनेक्ट करने का प्रयास करता है और विफल हो जाता है।

क्या कोई जानता है कि ऑब्जेक्ट एक्सप्लोरर का उपयोग किए बिना मेरा डिफ़ॉल्ट डेटाबेस कैसे सेट किया जाए ?

जवाबों:


38

Sp_defaultdb (जो Microsoft SQL सर्वर के भविष्य के संस्करण में हटा दिया जाएगा) के लिए वैकल्पिक हो सकता है ALTER LOGIN:

ALTER LOGIN [my_user_name] WITH DEFAULT_DATABASE = [new_default_database]

नोट: sp_defaultdbसमाधान उपयोगकर्ता के विपरीत और डेटाबेस के नाम बिना उद्धरण के प्रदान किए जाते हैं। ब्रैकेट की आवश्यकता होती है यदि नाम में विशेष वर्ण होते हैं (सबसे आम उदाहरण डोमेन उपयोगकर्ता होगा जो डोमेन \ उपयोगकर्ता नाम है और ब्रैकेट के बिना काम नहीं करेगा)।


1
वैसे यह सवाल अब थोड़ा पुराना हो रहा है। जब मैं SQL 2005 का उपयोग कर रहा था उस समय। Alter लॉगिन 2008 संस्करण तक जोड़ा नहीं गया था।
मार्टिन ब्राउन

@MartinBrown हाँ, मैं sp_deafultdbउम्र के लिए उपयोग कर रहा हूँ । मुझे आश्चर्य हुआ कि एक "नया" तरीका है।
मारेक

नोट: my_user_name या डेटाबेस के आसपास एकल उद्धरण की आवश्यकता नहीं है और त्रुटि हो सकती है। अनुभवी हाथों के लिए स्पष्ट है, लेकिन शायद ऐसा करने वालों के लिए कभी-कभार नहीं। वर्ग कोष्ठक वैकल्पिक, यदि फ़ील्ड सन्निहित पाठ का प्रतिनिधित्व करते हैं।
इकोविंस

मैं एक समूह के माध्यम से PROD डेटाबेस से कनेक्ट करता हूं, इसलिए मेरे पास सर्वर पर एक व्यक्तिगत लॉगिन नहीं है, जब मैं ऊपर चलाने की कोशिश करता हूं तो मुझे "लॉगिन DOMAIN \ myuser" को बदल नहीं सकता, क्योंकि यह मौजूद नहीं है या आप अनुमति नहीं है। ” इससे भी बदतर मैं कई समूहों में हूं क्योंकि हर एक मुझे सर्वर पर कई डीबी में से एक तक विशिष्ट पहुंच देता है। सुझाव?
माताओ

1
यह जानने के लिए कि लॉगिन का डिफ़ॉल्ट डेटाबेस क्या है: sys.server_principals से नाम, default_database_name चुनें;
डोकोक

215

आप क्या कर सकते हैं अपने डिफ़ॉल्ट डेटाबेस को sp_defaultdb सिस्टम संग्रहीत कार्यविधि का उपयोग करके सेट किया गया है। लॉग इन करें जैसा कि आपने किया है और फिर न्यू क्वेरी बटन पर क्लिक करें। उसके बाद बस sp_defaultdb कमांड को निम्नानुसार चलाएं:

Exec sp_defaultdb @loginame='login', @defdb='master' 

सच में शुक्रिया। एक आकर्षण की तरह काम किया (और डीबी निर्दिष्ट करने के लिए 'विकल्प' संवाद के बारे में मुझे सिखाया)।
पेंडी

इस सवाल ने
एबेल

1
यदि आप किसी AD समूह में हैं तो आप इतनी अच्छी तरह से काम नहीं करते हैं और आप दर्जनों अन्य डेवलपर्स के लिए डिफ़ॉल्ट डेटाबेस को बदलना नहीं चाहते हैं।
DOK

@ डॉक: लेकिन मुझे लगता है कि यदि आपका लॉग इन इस तरह से टूट गया है तो सभी अन्य डेवलपर्स हैं। तो उन सभी के लिए इसे ठीक करना निश्चित रूप से एक अच्छी बात होगी?
मार्टिन ब्राउन

खैर, इस विशेष SQL सर्वर उदाहरण पर एक दर्जन से अलग डेटाबेस हैं। हम सभी एक अलग डिफ़ॉल्ट डेटाबेस चाहते हैं। यदि हमने प्रत्येक डेटाबेस के लिए एक अलग उपयोगकर्ता समूह बनाया है, तो यह वांछित डिफ़ॉल्ट डेटाबेस हो सकता है, तो हम सभी को अलग-अलग उपयोगकर्ता समूहों के एक समूह में रहना होगा यदि हम अलग-अलग डेटाबेस देखना चाहते थे, और फिर हम वांछित डिफ़ॉल्ट खो देंगे। मैं चाहता हूं कि डिफ़ॉल्ट डेटाबेस को ठीक करने के लिए प्रबंधन स्टूडियो में एक तरीका था, लेकिन अभी तक मुझे ऐसा दृष्टिकोण नहीं मिला है जो वास्तव में काम करता हो।
DOK

49

इसे GUI तरीके से करने के लिए, आपको अपना लॉगिन संपादित करने की आवश्यकता है। इसका एक गुण उस लॉगिन के लिए उपयोग किया जाने वाला डिफ़ॉल्ट डेटाबेस है। आप लॉग इन नोड की सुरक्षा नोड के तहत लॉगिन की सूची पा सकते हैं। फिर अपना लॉगिन चुनें और राइट-क्लिक करें और गुण चुनें। डिफ़ॉल्ट डेटाबेस बदलें और आपका जीवन बेहतर होगा!

ध्यान दें कि किसी sysadmin निजी व्यक्ति को ऐसा करने या पिछली पोस्ट से क्वेरी चलाने के लिए लॉगिन करने में सक्षम होना चाहिए।


यह ठीक काम करता है! बस "डिफ़ॉल्ट" के बजाय "मास्टर" DB टाइप किया।
apprich

1
मुझे जो समस्या हो रही थी वह यह थी कि मैं सिसडमिन था और मैंने डिफ़ॉल्ट रूप से सेट किए गए डेटाबेस को हटा दिया था और इस तरह से यह डायलॉग भी नहीं मिल सका।
मार्टिन ब्राउन

@MartinBrown यह हो सकता है कि, मैंने कोई तालिकाओं को नहीं गिराया था और मैं अभी भी आपके प्रश्न का नेतृत्व कर रहा था, लेकिन GUI समाधान के साथ अधिक सहज महसूस किया।
djv

41

इस पोस्ट के लिए धन्यवाद , मुझे एक आसान उत्तर मिला:

  1. Sql Server Management Studio खोलें

  2. ऑब्जेक्ट एक्सप्लोरर -> सुरक्षा -> लॉगिन पर जाएं

  3. लॉगिन पर राइट क्लिक करें और गुणों का चयन करें

  4. और गुण विंडो में डिफ़ॉल्ट डेटाबेस को बदलें और ठीक पर क्लिक करें।


1
StackOverflow में आपका स्वागत है और उत्तर देने के लिए धन्यवाद। आप मार्कडाउन संपादक की विशेषताओं पर एक नज़र डालना चाहते हैं, जिससे आप कोड ब्लॉक, सूचियों आदि को प्रारूपित कर सकते हैं: stackoverflow.com/editing-help । मैंने आपके उत्तर को आपके लिए स्वरूपण में सुधार करने के लिए संपादित किया है।
पॉल टर्नर

इस सवाल का पूरा बिंदु यह है कि आपने जो वर्णन किया है वह काम नहीं करता है यदि आपने अपने स्वयं के लॉगिन खाते के लिए डिफ़ॉल्ट डेटाबेस को हटा दिया है । मेरे विशेष मामले में मैं इस प्रणाली का एकमात्र प्रशासक था, इसलिए किसी अन्य के खाते का उपयोग करने के लिए एक ही प्रभाव प्राप्त नहीं कर सकता था।
मार्टिन ब्राउन

@Mattijs आशा है कि आप इस प्रश्न की अंतिम पंक्ति पढ़ेंगे "क्या कोई जानता है कि वस्तु एक्सप्लोरर का उपयोग किए बिना मेरा डिफ़ॉल्ट डेटाबेस कैसे सेट किया जाए?"। Thats सिर्फ तुम क्या करने के लिए कहा है।
रोहित विपिन मैथ्यूज 10

2
यह ओपी के सवाल का जवाब नहीं हो सकता है, लेकिन यह मेरा जवाब दिया। यह एक उपयोगी उत्तर है।
CJ डेनिस

1
यह Azure डेटाबेस में संभव नहीं है: /
Squazz

14

यदि आपके पास अपने डिफ़ॉल्ट DB को बदलने की अनुमति नहीं है, तो आप मैन्युअल रूप से अपने प्रश्नों के शीर्ष पर एक अलग DB का चयन कर सकते हैं ...

USE [SomeOtherDb]
SELECT 'I am now using a different DB'

तब तक काम करेंगे जब तक आपके पास अन्य DB की अनुमति है


8
  1. कनेक्शन कनेक्शन आइकन पर क्लिक करें
  2. विकल्प << पर क्लिक करें
  3. कनेक्ट से डेटाबेस ड्रॉप डाउन तक DB का चयन करें

किसी कारण से इसने मेरे लिए कुछ उदाहरणों में काम किया है और दूसरों में नहीं।
लेविनिन्जा

3

मैं ALTER LOGINकमांड को भी स्वीकृत उत्तर के रूप में पसंद करूंगा और यहां वर्णित किया जाएगा

लेकिन GUI प्रेमी के लिए

  1. [SERVER INSTANCE] -> सुरक्षा -> लॉगिन -> [[आपका लॉगिन] पर जाएं
  2. [आपका लोगो] पर राइट क्लिक करें
  3. पृष्ठ के निचले भाग में डिफ़ॉल्ट डेटाबेस विकल्प को अपडेट करें

पढ़कर थक गए !!! बस निम्नलिखित देखें

यहां छवि विवरण दर्ज करें



0

यह प्रश्न का ठीक से उत्तर दे सकता है या नहीं भी दे सकता है, लेकिन मैं इस मुद्दे (और प्रश्न) में भाग गया था जब मैंने अपने "डिफ़ॉल्ट डेटाबेस" के रूप में एक नया डेटाबेस बनाने के लिए अपना खाता बदल दिया था। फिर मैंने उस डेटाबेस को हटा दिया और स्क्रैच से, अपनी रचना की स्क्रिप्ट का परीक्षण करना चाहता था। मैंने SSMS को लॉग इन किया और वापस अंदर जाने वाला था, लेकिन इनकार कर दिया गया - डिफ़ॉल्ट डेटाबेस में लॉग इन नहीं कर सकता त्रुटि थी। डी 'ओह!

मैंने क्या किया था, SSMS के लिए लॉगिन संवाद पर, विकल्प, कनेक्शन गुण पर जाएं, फिर master"डेटाबेस से कनेक्ट करें" कॉम्बोक्स पर टाइप करें। कनेक्ट पर क्लिक करें। में मुझे मिला। वहाँ से आप कमांड चला सकते हैं:

ALTER LOGIN [DOMAIN\useracct] WITH DEFAULT_DATABASE=[master]
GO

-1

यदि आप विंडोज़ प्रमाणीकरण का उपयोग करते हैं, और आप उपयोगकर्ता नाम और पासवर्ड के माध्यम से लॉगिन करने के लिए पासवर्ड नहीं जानते हैं, तो आप ऐसा कर सकते हैं: SSMS पर लॉगिन स्क्रीन पर नीचे दाईं ओर दिए गए विकल्पों पर क्लिक करें, फिर कनेक्शन गुण टैब पर जाएं । फिर आप मैन्युअल रूप से उस दूसरे डेटाबेस का नाम टाइप कर सकते हैं जिस पर आपकी पहुंच है, जहां वह कहता है, जो आपको कनेक्ट करने देगा। फिर अपने डिफ़ॉल्ट डेटाबेस को बदलने के लिए अन्य सलाह का पालन करें

https://gyazo.com/c3d04c600311c08cb685bb668b569a67

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.