SQL सर्वर 2005/2008 में लॉग इन करते समय आपके पास उन डेटाबेस को कैसे छुपाया जा सकता है जिनके पास आपके पास पहुंच अधिकार नहीं हैं? वर्तमान में यदि कोई उपयोगकर्ता कनेक्ट करता है, तो वे सर्वर पर सभी डेटाबेस देखते हैं, जिसका अर्थ है कि सूची को उनके डेटाबेस को खोजने के लिए स्कैन करना होगा।प्रबंधन स्टूडियो से SQL डेटाबेस छुपाएं
उत्तर
आप भूमिका जनता से 'किसी भी डेटाबेस देखने की अनुमति (SQL सर्वर 2005 के बाद)
वहाँ प्रकट होता है एमएस एसक्यूएल 2005 और 2008 पर एक सर्वर साइड सेटिंग डेटाबेस एक प्रतिबंधित करने के लिए होने के लिए रद्द करने की आवश्यकता होगी उपयोगकर्ता देख सकता है। मुझे निम्नलिखित पाठ sql-server-performance.com
SQL सर्वर 2005 में यह एक नई सर्वर पक्ष भूमिका के साथ संभव है। किसी भी डाटाबेस अनुमति को देखते हुए एक नई, सर्वर-स्तरीय अनुमति है। इस अनुमति के साथ दिया गया एक लॉगिन मेटाडेटा देख सकता है जो सभी डेटाबेस का वर्णन करता है, इस पर ध्यान दिए बिना कि लॉगिन का स्वामित्व है या वास्तव में किसी विशेष डेटाबेस का उपयोग कर सकता है। कृपया ध्यान दें डिफ़ॉल्ट रूप से, सार्वजनिक भूमिका के लिए किसी भी डाटाबेस अनुमति को देखते हैं। इसलिए, डिफ़ॉल्ट रूप से, SQL सर्वर 2005 के उदाहरण से कनेक्ट होने वाले प्रत्येक उपयोगकर्ता उदाहरण में सभी डेटाबेस देख सकते हैं।
यह वास्तव में इस तरह से काम नहीं करेगा जो समझ में आता है या आप उम्मीद कर सकते हैं कि यह होगा। आप सार्वजनिक भूमिका से किसी भी डेटा को देखते हैं, लेकिन फिर उपयोगकर्ता को डेटाबेस का डेटाबेस स्वामी होना चाहिए या इसे देखा नहीं जा सकता है, लेकिन इसे अभी भी एक्सेस किया जा सकता है। समस्या डेटाबेस डेटाबेस सुरक्षा की कमी है और SQL सर्वर की वर्तमान या भविष्य में रिलीज़ में ठीक होने की संभावना नहीं है। कुछ समय पहले एरलैंड सोमरस्क ने निम्न कनेक्ट आइटम खोला था, और हाल ही में ट्विटर पर और माइक्रोसॉफ्ट के साथ एसक्यूएल एमवीपी द्वारा चर्चा की गई थी। के लिए वोट दें कनेक्ट और मदद यह एक प्राथमिकता के और माइक्रोसॉफ्ट को ठीक करने के लिए करते हैं:
मूल रूप से अनुमतियाँ डेटाबेस स्तर पर जमा हो जाती है, तो यह प्रत्येक डेटाबेस की गणना करता है, तो उपयोगकर्ता कनेक्ट है निर्धारित करने के लिए की आवश्यकता होगी ऑब्जेक्ट एक्सप्लोरर में डेटाबेस प्रदर्शित करने का अधिकार, जो प्रदर्शन करने का एक महंगा काम है और पुराने ईएम चीजों को कैसे करता था। प्रस्तावित समाधान इस जानकारी के लिए सर्वर स्तर पर भी बनाए रखा जा सकता है, जो एक बड़ा परिवर्तन है।
उपयोगकर्ता खाते को बनाने का तरीका जानने के कुछ घंटों के बाद, केवल 1 डीबी तक पहुंच है, और केवल उस डीबी को देख सकता है। मुझे लगता है कि मैंने हल निकाल लिया!!!!
एक उपयोगकर्ता खाते बनाएँ (यकीन है कि अपनी किसी भी डेटाबेस पर मैप नहीं करें, अन्यथा आप अंतिम त्रुटि संदेश 15110, स्तर 16, राज्य 1 मिल जाएगा और ध्यान दें प्रस्तावित समाधान)
USE [master] GO CREATE LOGIN [us4] WITH PASSWORD=N'123', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
एसक्यूएल (SQLSERVER नाम) के ऊपरी भाग पर राइट क्लिक करें> गुण> अनुमतियां> उपयोगकर्ता खाते पर क्लिक करें, और डेटाबेस देखने के लिए इनकार करें का चयन करें।
उपयोग [गुरु] GO देखें [us4]
राइट नव निर्मित डीबी, गुण, फ़ाइलें पर क्लिक करने के किसी भी डेटाबेस इनकार करते हैं, और नव निर्मित खाते के मालिक बदल जाते हैं।इस बिंदु पर: (महत्वपूर्ण नोट बदल भूमिका [db_owner] जोड़ें सदस्य [us4] काम नहीं करता है)
USE [dbname] GO EXEC dbo.sp_changedbowner @loginame = N'us4', @map = false
, एक बार उपयोगकर्ता के लॉग इन वह मास्टर, tempdb और देखेंगे होगा नया डीबी भी देखें जो वह एक डीबी मालिक है .. आप टूल्स> विकल्प पर जा सकते हैं और सिस्टम ऑब्जेक्ट्स को छिपाने के विकल्प को सक्षम कर सकते हैं ताकि आप मास्टर, tempdb, आदि को न दिखाएं। तुम भी SP1 की जरूरत है तो इस विकल्प का संदेश 15110 के
Msg 15110, Level 16, State 1, Line 1
The proposed new database owner is already a user or aliased in the database.
प्रस्तावित समाधान काम नहीं करता है हो सकता है: त्रुटि उपरोक्त समस्याओं का समाधान करने के लिए बस डेटाबेस सुरक्षा नोड से उपयोगकर्ता हटाकर पुन:
आशा है कि मदद करता है की कोशिश .. ।
निखिल
के बाद भी सक्रिय के रूप में चिह्नित किया गया है यह अच्छा है, लेकिन अगर मैं नहीं चाहता कि वह उपयोगकर्ता डीबी के मालिक बनें, फिर भी इसे देखने में सक्षम हो एसएसएमएस में? – friism
मैं इसे लंबे समय से ढूंढ रहा हूं, बहुत बहुत धन्यवाद! –
कूल यह मेरे लिए काम करता है ... friism - बहुत अधिक माइक्रो मैनेजिंग आईएमओ जा रहा है;) क्या आप आईई - टेबल बूंद/जोड़, truncates, आदि की जरूरत से इंकार कर इस अवधारणा को ठीक से ठीक नहीं कर सकते हैं ... – bbqchickenrobot
USE master; GO
DENY VIEW ANY DATABASE TO [loginname]; GO
USE [your db]; GO
DROP USER [loginname]; GO
USE master; GO
ALTER AUTHORIZATION ON DATABASE::[your db]TO [loginname]; GO
क्या आप यह समझा सकते हैं कि यह कोड क्या है करता है और यह अन्य उत्तरों से अलग कैसे होता है – userSteve
- 1. एसक्यूएल Azure डेटाबेस SQL सर्वर प्रबंधन स्टूडियो
- 2. SQL सर्वर प्रबंधन स्टूडियो
- 3. SQL सर्वर प्रबंधन स्टूडियो
- 4. SQL सर्वर प्रबंधन स्टूडियो
- 5. SQL प्रबंधन स्टूडियो 2008
- 6. SQL सर्वर प्रबंधन स्टूडियो
- 7. SQL सर्वर प्रबंधन स्टूडियो डेटाबेस में उपयोगकर्ता फ़ोल्डर्स डेटाबेस
- 8. SQL सर्वर प्रबंधन स्टूडियो
- 9. SQL प्रबंधन स्टूडियो
- 10. SQL सर्वर प्रबंधन स्टूडियो
- 11. SQL सर्वर प्रबंधन स्टूडियो
- 12. SQL सर्वर प्रबंधन स्टूडियो
- 13. SQL सर्वर प्रबंधन स्टूडियो
- 14. SQL प्रबंधन स्टूडियो
- 15. SQL सर्वर प्रबंधन स्टूडियो 2005
- 16. SQL सर्वर प्रबंधन स्टूडियो 2008
- 17. SQL सर्वर प्रबंधन स्टूडियो 2005
- 18. प्रबंधन स्टूडियो
- 19. एसक्यूएल सर्वर प्रबंधन स्टूडियो
- 20. प्रबंधन स्टूडियो
- 21. SQL सर्वर 2008 प्रबंधन स्टूडियो में डेटाबेस की विस्तृत सूची SQL सर्वर 2005
- 22. लिंक किए गए सर्वरों का उपयोग किये बिना SQL प्रबंधन स्टूडियो से क्वेरी एक्सेस डेटाबेस
- 23. SQL सर्वर: .mdf से डेटाबेस आयात करना?
- 24. SQL सर्वर 2005 डेटाबेस
- 25. एसक्यूएल सर्वर प्रबंधन स्टूडियो
- 26. डिफ़ॉल्ट लॉगिन बदलें SQL सर्वर प्रबंधन स्टूडियो (एसएसएमएस)
- 27. SQL सर्वर प्रबंधन स्टूडियो में "व्यवस्थापक अधिकार" कैसे प्राप्त करें?
- 28. किसी SQL सर्वर डेटाबेस
- 29. त्रुटि: पैकेज 'माइक्रोसॉफ्ट एसक्यूएल प्रबंधन स्टूडियो पैकेज' लोड करने में विफल रहा। SQL सर्वर प्रबंधन स्टूडियो
- 30. एसक्यूएल सर्वर प्रबंधन स्टूडियो
नोट: यह आपके लिए काम नहीं कर सकता है, तो आप लॉगिन डेटाबेस की डीबीओ इस प्रयोक्ता नहीं कर सकते हैं आप उसे प्रशासित करना चाहते हैं या यदि आपके पास एकाधिक लॉग इन हैं जो आप इस तरीके से सुरक्षित करना चाहते हैं क्योंकि केवल एक ही लॉगिन डेटाबेस का वास्तविक डीबीओ हो सकता है। –