आप किसी भी डेटाबेस को देखने से इनकार करें का उपयोग कर सकते हैं विशेष उपयोगकर्ता (ओं) के लिए आदेश। यह SQL Server 2008 में उपलब्ध एक नई सुविधा है।
यह उपयोगकर्ता को सिस्टम कैटलॉग (sys.databases, sys.sysdatabases, आदि) देखने से रोकता है और इसलिए SQL प्रबंधन स्टूडियो (SSMS) में DB को उनके लिए अदृश्य बना देता है।
इस कमांड को मास्टर डेटाबेस से चलाएँ:
DENY VIEW ANY DATABASE TO 'loginName'
उपयोगकर्ता अभी भी आपके एप्लिकेशन के माध्यम से डेटाबेस तक पहुंचने में सक्षम है। हालाँकि, यदि वे SSMS के माध्यम से लॉग इन करते हैं, तो आपका डेटाबेस डेटाबेस की सूची में दिखाई नहीं देगा और यदि वे एक क्वेरी विंडो खोलते हैं, तो आपका डेटाबेस ड्रॉपडाउन में दिखाई नहीं देगा।
हालाँकि, यह मूर्खतापूर्ण नहीं है। यदि उपयोगकर्ता क्वेरी कमांड चलाने के लिए पर्याप्त स्मार्ट है:
USE <YourDatabaseName>
फिर वे क्वेरी एनालाइज़र में डेटाबेस देखेंगे।
चूंकि यह समाधान आपको 90% वहां ले जा रहा है, इसलिए मैं डेटाबेस को कुछ अस्पष्ट नाम दूंगा ताकि उपयोगकर्ता डेटाबेस का नाम न जान सकें।