डेटाबेस आरेख समर्थन ऑब्जेक्ट्स को स्थापित नहीं किया जा सकता ... कोई मान्य स्वामी नहीं


132

मैंने SQL Server 2008 के साथ एक डेटाबेस आरेख बनाने की कोशिश की, लेकिन एक त्रुटि होती है:

डेटाबेस आरेख समर्थन ऑब्जेक्ट इंस्टॉल नहीं किए जा सकते क्योंकि इस डेटाबेस में कोई मान्य स्वामी नहीं है। जारी रखने के लिए, डेटाबेस स्वामी को मान्य लॉगिन पर सेट करने के लिए पहले डेटाबेस गुण संवाद बॉक्स या ALTER AUTHORIZATION कथन की फ़ाइलें पृष्ठ का उपयोग करें, फिर डेटाबेस आरेख समर्थन ऑब्जेक्ट जोड़ें।

फिर मैंने निम्नलिखित कोशिश की:

EXEC sp_dbcmptlevel 'Ariha', '90';
GO
ALTER AUTHORIZATION ON DATABASE::Ariha TO [WIN-NDKPHUPPNFL\Administrator]
GO
USE Ariha
GO
EXECUTE AS USER = N'dbo' REVERT
GO

अगले कटे हुए चबूतरे:

Msg 15404, स्तर 16, राज्य 11, पंक्ति 1 विंडोज NT समूह / उपयोगकर्ता 'WIN-NDKPHUPPNFL \ व्यवस्थापक', त्रुटि कोड 0x534 के बारे में जानकारी प्राप्त नहीं कर सका।

समस्या यह है कि पीसी का नाम "देवपीसी" में बदल गया है मैंने इसे अपडेट स्क्रिप्ट में भी बदल दिया, लेकिन अभी भी वही त्रुटि 15404 है।

इस कष्टप्रद त्रुटि को ठीक करने के लिए मैं क्या कर सकता हूं?


4
जब आप किसी भिन्न मशीन से बैकअप पुनर्स्थापित करते हैं तो आपको यह समस्या भी आती है।
टिम एबेल

जब आप किसी अन्य मशीन से एक db को पुनर्स्थापित करते हैं, तो आप दो कमांड चलाकर इस त्रुटि को ठीक कर सकते हैं: 1) alter authorization on database::[db_name] to [sa], और फिर 2) उसी कमांड को फिर से चलाते हैं और [sa]उस उपयोगकर्ता के साथ प्रतिस्थापित करते हैं जो डेटाबेस के स्वामित्व में बहाल होने के तुरंत बाद।
जेम्स एल।

जवाबों:


182

आपको डेटाबेस स्वामित्व के लिए SQL प्रमाणीकरण खाते पर विचार करना चाहिए; फिर आपको आने और जाने वाले खातों के बारे में चिंता करने की ज़रूरत नहीं है, डेटाबेस या विभिन्न सर्वरों पर जाने वाले उदाहरण, और आपका अगला पीसी नाम परिवर्तन। मेरे पास कई प्रणालियाँ हैं जहाँ हम उपयोग करते हैं:

ALTER AUTHORIZATION ON DATABASE::Ariha TO [sa];

या यदि आप मालिक को उस स्थानीय व्यवस्थापक खाते में बदलना चाहते हैं, तो यह होना चाहिए:

ALTER AUTHORIZATION ON DATABASE::Ariha TO [DevPC\Administrator];

क्योंकि मशीन का नाम बदलने के DevPCलिए स्थानीय खाते को समाप्त कर दिया गया था जिसका नाम रखा गया था WIN-ND...\Administratorऔर इसने डेटाबेस के वर्तमान मालिक को भी अमान्य कर दिया है।

यदि SELECT @@SERVERNAME;यह सटीक नहीं है (इसे कहना चाहिए DevPC), तो यह सुनिश्चित करने के लिए कि आपके सर्वर का नाम SQL सर्वर में रखा गया है, आप निम्नलिखित जारी करना चाह सकते हैं:

EXEC sp_dropserver @server = N'old server name';
GO
EXEC sp_addserver @server = N'DevPC', @local = N'local';
GO

यह दिखाता है: "जीत- NDKPHUPPNFL" मैंने आपके sql स्टेटमेंट का उपयोग किया है और यह काम करता है ... लेकिन क्या यह सेटअप सही है या मुझे कुछ और नहीं करना है?
रूकियन

खैर, यह वास्तव में निर्भर करता है। यदि आपको Windows डेटाबेस / कार्यसमूह उपयोगकर्ता के स्वामित्व के लिए अपने डेटाबेस की आवश्यकता होती है, तो संभवतः अधिक काम करना है। व्यक्तिगत रूप से, मुझे यह समस्याग्रस्त लगती है। शायद इसे पहले पढ़ें: sqlblog.com/blogs/tibor_karaszi/archive/2009/12/30/…
एरोन बर्ट्रेंड

1
saयदि आपके पास sql प्रमाणीकरण अक्षम है तो इसे सेट करने में कोई समस्या है ?
टिम एबेल

@AaronBertrand हाय मेरे पास एक प्रश्न है। डिफ़ॉल्ट रूप से यदि हम एक डेटाबेस डेटाबेस मालिक बनाते हैं, तो वर्तमान विंडोज़ उपयोगकर्ता पर सेट होता है और यदि वर्तमान विंडोज़ उपयोगकर्ता भी प्रशासक होता है। हमें इसे Sql Authantication Login में बदलने की आवश्यकता क्यों है। वास्तव में मैं इस त्रुटि को नहीं समझ सकता। अगर हम इसे sa लॉगिन में बदलते हैं तो यह काम करता है। लेकिन प्रशासक विंडोज लॉगिन भी सिस्टम एडमिन है। क्या आप मदद कर सकते हैं?
उफुकसुरेन

मैंने डेटाबेस का एक समूह बहाल किया, और उन सभी ने ओपी के प्रश्न में त्रुटि प्रदर्शित की, भले ही प्रत्येक डेटाबेस के गुणों ने एक वैध उपयोगकर्ता दिखाया। मैंने इसे बदलने के लिए 1 कमांड का उपयोग किया [sa]और फिर मैंने इसे उस उपयोगकर्ता को वापस बदल दिया जिसमें उसने कहा था कि यह पहले था, और वायोला, कोई और त्रुटि नहीं। यकीन नहीं है कि एक डेटाबेस रिस्टोर ने डेटाबेस के मालिक को ठीक से सेट क्यों नहीं किया ...
जेम्स एल।

208

SQL सर्वर प्रबंधन स्टूडियो में निम्न कार्य करें:

  1. अपने डेटाबेस पर राइट क्लिक करें, गुण चुनें
  2. विकल्प पृष्ठ पर जाएं
  3. "लेबल किए गए संगतता स्तर" के दाईं ओर स्थित ड्रॉप डाउन में "SQL Server 2005 (90)" 3-1 चुनें। यदि आप एक तुलनीय त्रुटि प्राप्त करते हैं तो "SQL Server 2008" चुनें।
  4. फ़ाइलें पृष्ठ पर जाएं
  5. स्वामी टेक्स्टबॉक्स में "सा" दर्ज करें। 5-1 या दीर्घवृत्त (...) पर क्लिक करें और एक सही स्वामी चुनें।
  6. ठीक है मारो

ऐसा करने के बाद, अब आप डेटाबेस आरेख का उपयोग कर पाएंगे।

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


2
क्या कोई कारण है कि डेटाबेस में स्वामी नहीं होना चाहिए? मैं किसी और के उत्पाद डेटाबेस में आ रहा हूं और कोई मालिक सेट नहीं है। क्या यह जानबूझकर था? (ग्राहक पर कोई नहीं है जो जानता होगा)।
जेसन क्लेबन

डेटाबेस में एक स्वामी होना चाहिए। एक सही मालिक के बजाय "सा" चुनना, उपरोक्त त्रुटि को ठीक करने के लिए बस एक आसान विकल्प है। लेकिन एक सही मालिक का चयन भी समस्या को तय करता है।
लेस्ली रिवेंज

3
क्या कोई इन चरणों में संगतता स्तर को बदलने के उद्देश्य की व्याख्या कर सकता है? बस मालिक को 'सा' के लिए फाइलों के नीचे सेट करना मेरे लिए पर्याप्त था (भले ही मेरे पास एसक्यूएल को सक्षम नहीं है, अजीब तरह से)।
टिम एबेल

इसने मेरे लिए काम किया। मुझे अपने उपयोगकर्ता को Databasename> Security से हटाने की आवश्यकता थी, हालाँकि।
गज़िम

यह मेरे लिए काम किया, SQL सर्वर 2017 पर, प्रबंधन स्टूडियो 17.9 का उपयोग करके, चरण 1 की आवश्यकता के बिना
जियोर्जियो बारचीस

7
USE [ECMIS]
GO
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
GO

यह काम करता हैं।


5

स्वामी टेक्स्टबॉक्स में "सा" के बजाय "SA" दर्ज करें। इसने मेरे लिए काम किया।


5

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

तो मैंने जो किया वह मालिक को एक स्थानीय उपयोगकर्ता में बदल दिया और यह काम किया !!
आशा है कि यह किसी की मदद करता है।

आप डेटाबेस, गुण, फ़ाइलें, स्वामी पर राइट-क्लिक करके उपयोगकर्ता को बदलते हैं


3

इसने मेरे लिए इसे ठीक कर दिया। यह डेटाबेस प्रॉपर्टीज विंडो के 'फाइल्स' सेक्शन के तहत मिलने वाले मालिक को सेट करता है, और प्रबंधन स्टूडियो द्वारा स्क्रिप्टेड होता है।

USE [your_db_name]
GO
EXEC dbo.sp_changedbowner @loginame = N'sa', @map = false
GO

Sp_changedbowner प्रलेखन के अनुसार यह अब हटा दिया गया है।

इजरायल के जवाब के आधार पर। हारून का जवाब इस की गैर-वंचित भिन्नता है।


3

अपने डेटाबेस का चयन करें - राइट क्लिक करें - गुण चुनें

पेज के लेफ्ट साइड में FILE का चयन करें

OWNER बॉक्स में, बटन चुनें जिसमें तीन डॉट्स (…) हैं

अब यूजर का सेलेक्ट करें और ओके पर क्लिक करें


0

मैंने अभी इसका अनुभव किया है। मैंने इस पृष्ठ पर सुझावों को पढ़ा था, साथ ही SQL प्राधिकरण के सुझाव (जो एक ही बात है) और उपरोक्त में से कोई भी काम नहीं किया।

अंत में, मैंने खाता हटा दिया और फिर से बनाया (उसी उपयोगकर्ता नाम / पासवर्ड के साथ)। बस, ऐसे ही सारे मुद्दे चले गए।

अफसोस की बात है, इसका मतलब है कि मुझे नहीं पता कि क्या गलत हुआ इसलिए मैं किसी और चीज को साझा नहीं कर सकता।


0

1. अपने डेटाबेस पर क्लिक करें, 2. जब चुनें गुण। 3. अनुकूलता स्तरों में विकल्प का चयन करें sql 2008 [100] का चयन करें यदि आप Microsoft sql 2008 के साथ काम कर रहे हैं।

4. फिर फ़ाइल का चयन करें और owner`s टेक्स्टबॉक्स में लिखें (sa)

मेरे लिए 100% काम करता है।


0

इस मुद्दे को हल करने का एक आसान तरीका अपने डेटाबेस के नाम पर राइट क्लिक करना होगा, "नई क्वेरी" चुनें, "sp_changedbowner 'sa' टाइप करें और क्वेरी निष्पादित करें। तब आप जाना अच्छा रहेगा।


0

आपको माइक्रोफ़ॉफ़्ट एसक्यूएल सर्वर प्रबंधन स्टूडियो में व्यवस्थापक राइट क्लिक के रूप में दर्ज करना होगा और व्यवस्थापक के रूप में चलना होगा


0

केवल DATABASE :: YourDatabase to [domain \ account] पर क्वेरी संपादक ALTER AUTHORIZATION में इसे निष्पादित करने की आवश्यकता है;


-3

वास्तविक समस्या यह है कि डिफ़ॉल्ट स्वामी (dbo) के पास इसके लिए लॉगिन मैप नहीं है। जैसा कि मैंने डेटाबेस के मालिक के लिए लॉगिन लॉगिन करने की कोशिश की, मुझे "उपयोगकर्ता, समूह या भूमिका 'dbo' बताते हुए एक और त्रुटि प्राप्त हुई। पहले से ही मौजूद है ... "। हालांकि यदि आप इस कोड की कोशिश करते हैं तो यह वास्तव में काम करेगा:

EXEC sp_dbcmptlevel 'yourDB', '90';

जाओ

DATABASE पर आपका उच्चारण :: yourDB "yourLogin" पर

जाओ

[yourDB] का उपयोग करें

जाओ

USER = N'dbo 'REVERT के रूप में निष्पादित करें

जाओ


-3

अपने डेटाबेस पर राइट क्लिक करें, फिर गुणों का चयन करें। संगतता स्तरों में विकल्प का चयन करें 2008 के बजाय sql 2005 [90] का चयन करें यदि आप Microsoft sql 2008 के साथ काम कर रहे हैं। तो फ़ाइल का चयन करें और मालिक के टेक्स्टबॉक्स में लिखें (sa)। यह शायद काम करेगा

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