क्या डेटाबेस के सभी गैर-प्रणाली विचारों के लिए एक उपयोगकर्ता की पहुँच प्रदान करने का एक तरीका है?


9

SQL सर्वर में, मेरे पास एक विशेष डेटाबेस में एक उपयोगकर्ता है और मुझे उन्हें केवल डेटाबेस के सभी गैर-सिस्टम विचारों तक पहुंच प्रदान करने के लिए कहा गया है। मेरा मानना ​​है कि यह एक प्रकार के दृश्य के securables को संपादित करके और प्रत्येक पर चयन का अनुदान देकर किया जा सकता है, लेकिन कई, कई विचार हैं। क्या इसे पूरा करने का एक अधिक कुशल तरीका है?

जवाबों:


8

नहीं है कोई के रूप में इस तरह के वाक्य रचना

GRANT SELECT ON ALL::Views TO SomeUser 

आप GRANT SELECTअलग-अलग ऑब्जेक्ट्स , स्कीमा या संपूर्ण डेटाबेस पर अनुमति दे सकते हैं लेकिन ऑब्जेक्ट प्रकार द्वारा फ़िल्टर नहीं किए गए हैं केवल दृश्य शामिल हैं। इस प्रकार के एडहॉक कार्य के लिए, मैं संभवतः एक नई भूमिका बनाऊंगा ViewReader, जो उपयोगकर्ता को उस भूमिका में जोड़ देगा, फिर SSMS रन में

SELECT 'GRANT SELECT ON ' + 
          QUOTENAME(SCHEMA_NAME(schema_id)) + '.' + QUOTENAME(name) + 
      ' TO ViewReader;'
FROM sys.views
WHERE is_ms_shipped = 0

GRANTआवश्यक अनुमतियों को चलाने के लिए एक स्क्रिप्ट उत्पन्न करने के लिए।


अत्यंत कृपापूर्ण उत्तर के लिए धन्यवाद। स्क्रिप्ट मेरे सिर पर थोड़ी है, इसलिए मैं इसे लागू करने से पहले कुछ पढ़ना चाहूंगा। एक बार फिर धन्यवाद।
क्रिस्टोफर गार्सिया

1
@lush - स्क्रिप्ट आपको समीक्षा, कॉपी, पेस्ट और रन करने के लिए कुछ कमांड देती है। आप परिणाम को संक्षिप्त करने के लिए कुछ और विस्तृत कर सकते हैं, EXECलेकिन मैं एक बंद कार्य के लिए परेशान नहीं करूंगा।
मार्टिन स्मिथ

मैं अब समझ गया, यह इस समस्या का एक सही समाधान है, धन्यवाद!
क्रिस्टोफर गार्सिया

4

मैंने अपने मामले में एक और तरीका अपनाया। यह जो मैंने किया है:

  1. एक लॉगिन बनाएं और इसे डेटाबेस में मैप करें।
  2. उदाहरण के लिए Public_View नामक स्कीमा बनाने वाले डेटाबेस में जाएं। इस स्कीमा का मालिक तालिकाओं का एक ही मालिक होना चाहिए जिसे विचार संदर्भित करने वाले हैं।
  3. नए स्कीमा तक नए उपयोगकर्ता की पहुंच प्रदान करें।
  4. नए स्कीमा में जितने चाहें उतने दृश्य बनाएँ और नए उपयोगकर्ता की उन तक पहुँच होगी।

अच्छी बात यह है कि नए उपयोगकर्ता के पास तालिकाओं तक पहुंच नहीं होगी, वह टेबल भी नहीं देख पाएगा।

मुझे उम्मीद है यह मदद करेगा।


4
+1 करने के लिए मेरे बारे में इस समाधान के बारे में अच्छी बात यह है कि नए विचार बनने पर स्पष्ट रूप से अनुमतियों को असाइन करने की कोई आवश्यकता नहीं है।
मार्टिन स्मिथ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.