डेटाबेस प्रिंसिपल डेटाबेस में एक स्कीमा का मालिक है, और संदेश को छोड़ा नहीं जा सकता


28

मैं डेटाबेस से एक प्रिंसिपल को हटाने की कोशिश कर रहा हूं, लेकिन ऐसा नहीं कर सकता क्योंकि यह स्कीमा का मालिक है। जब मैं उपयोगकर्ता को संपादित करने के लिए जाता हूं, हालांकि, स्कीमा को अनचेक करने के लिए बॉक्स नीला और निश्छल है। मैं इन स्कीमाओं से मूलधन कैसे निकाल सकता हूं?

जवाबों:


31

ऐसा करने के लिए T-SQL आज़माएं:

alter authorization
on schema::YourSchemaName
to dbo
go

drop user TheUserYouWantToDelete
go

आप एक प्रिंसिपल को ड्रॉप नहीं कर सकते जो स्कीमा का मालिक है, इसलिए ALTER AUTHORZATIONस्वामित्व वाले स्कीमा में परिवर्तन करता है (मैंने उपयोग किया है YourSchemaName, लेकिन जाहिर है कि आपके डेटाबेस में स्वामित्व स्कीमा के साथ स्थानापन्न) dbo(इसी तरह, आप स्वामित्व को अपने मूलधन में बदल सकते हैं जो आपको अपनी ज़रूरत है वातावरण)। यह आपको पहले-स्कीमा-मालिक उपयोगकर्ता (उदाहरण के लिए मेरे द्वारा उपयोग किए जाने वाले उद्देश्यों के लिए) को छोड़ने की अनुमति देगा TheUserYouWantToDelete, लेकिन अब वह गैर-स्वामी होगा जिसे आप छोड़ना चाहते हैं)।


ठीक है, तो यह काम किया। मैं थोड़ा उलझन में हूँ क्यों, हालाँकि। मुझे स्कीमा को किसी अन्य स्कीमा को अधिकृत करने की आवश्यकता क्यों है? शायद मुझे स्कीमा की समीक्षा करने की आवश्यकता है ...
जल्दबाजी में

1
@rsteckly सरलीकृत, प्राधिकरण = स्वामित्व। यदि आप उस उपयोगकर्ता को हटा सकते हैं जो स्कीमा का मालिक है, तो स्कीमा मान्य नहीं होगी, क्योंकि स्वामी अब मौजूद नहीं है। कल्पना कीजिए कि आप एक ग्राहक को हटा सकते हैं जिसने एक ऑर्डर रखा है। अगर ऑर्डर करने वाला कोई ग्राहक नहीं है तो ग्राहक का ऑर्डर टेबल में क्या मतलब है? मुझे आदेश कहां शिप करना चाहिए?
हारून बर्ट्रेंड

क्षमा करें, मेरा उदाहरण अच्छी तरह से समझाया नहीं गया था। हम dboस्कीमा में प्राधिकरण नहीं बदल रहे हैं , हम dboप्राचार्य को प्राधिकार बदल रहे हैं । वह कोई भी डेटाबेस प्रिंसिपल हो सकता था।
थॉमस स्ट्रिंगर

30

T-SQL तरीका काम करता है। के लिए धन्यवाद http://zarez.net/?p=179 मैं SSMS इस (यूआई) करने के लिए रास्ता मिल गया।

Sql सर्वर प्रबंधन स्टूडियो से स्कीमा स्वामी को बदलने के लिए:

Expand your database -> Security -> Schemas

ऑब्जेक्ट एक्सप्लोरर विवरण में आप स्कीमा और मालिकों की एक सूची देख सकते हैं:

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

यदि आपको नहीं पता कि उपयोगकर्ता किस स्कीमा (ओं) का मालिक है, तो उपयोगकर्ता के गुणों की जाँच करें।

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

उपयोगकर्ता के स्वामित्व वाले स्कीमा के गुणों को खोलें और एक नया स्वामी खोजने के लिए "खोज" पर क्लिक करें। यदि आप नए मालिक को नहीं जानते हैं, तो आप एक के लिए "ब्राउज़" कर सकते हैं।

Properites -> Search -> Browse

और आप स्कीमा मालिक को dbo में बदल सकते हैं (या जो भी सबसे उपयुक्त हो)।

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


1
T-SQL तरीका ज्यादा बेहतर और लचीला है। GUI के माध्यम से ऐसा करने से हमेशा दर्द होता है!
परिजन शाह

मैं टी-एसक्यूएल तरीके के लिए सभी हूं, क्योंकि इसका उपयोग लिपियों में भी किया जा सकता है।
वुडवी

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