Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

क्या हम विशिष्ट तालिकाओं से हटाने से इनकार कर सकते हैं?

बिल्कुल!

DENY DELETE ON (YourTableNameHere) TO YourUserNameHere

देखें अद्भुत और व्यापक MSDN पुस्तकें ऑनलाइन दस्तावेज़ अधिक जानकारी के लिए!

अगर आप DELETE को अस्वीकार करना चाहते हैं सभी . पर अनुमति डेटाबेस में टेबल, आप उपयोग कर सकते हैं:

DENY DELETE TO YourUserNameHere

या यदि आपने अपने डेटाबेस को इस तरह से संरचित किया है कि तालिकाएँ स्कीमेटस में समूहीकृत हों , तो आप किसी विशिष्ट स्कीमा से किसी उपयोगकर्ता को अस्वीकार भी कर सकते हैं।

यदि आपने अपनी 90 तालिकाओं को एक अलग स्कीमा (या दो, तीन स्कीमाटा) में समूहीकृत नहीं किया है, तो कोई आसान, जादुई तरीका नहीं है एक बार में 90 टेबल पर अनुमति लागू करने के लिए। यह या तो सभी तालिकाएं है , एक विशिष्ट स्कीमा, या एक विशिष्ट डेटाबेस ऑब्जेक्ट (एक तालिका की तरह) प्रति DENY बयान।

अपडेट करें: आप उन DENY . को उत्पन्न करने के लिए हमेशा सिस्टम कैटलॉग दृश्यों का उपयोग कर सकते हैं आपके लिए बयान, और फिर उन लोगों का उपयोग करें जिनकी आपको आवश्यकता है:

SELECT 
    'DENY DELETE ON ' + t.NAME + ' TO (youruser)'
FROM sys.tables t

यह अपने आउटपुट के रूप में उत्पन्न करेगा (जैसे SQL सर्वर प्रबंधन स्टूडियो में) DELETE को अस्वीकार करने के लिए कथन की एक सूची आपके उपयोगकर्ता से अनुमति। उन पंक्तियों को एक टेक्स्ट एडिटर में कॉपी करें और उन पंक्तियों को हटा दें जिनकी आपको आवश्यकता नहीं है - और वहां आपके पास DENY की आपकी लंबी सूची है बयान!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL में एकाधिक वर्णों को कैसे बदलें?

  2. एक तालिका में सभी बाधाओं को छोड़ें

  3. तालिका पर चयन/अद्यतन संचालन के साथ SQL गतिरोध

  4. मैं परिणामों का एक विशिष्ट हिस्सा कैसे प्राप्त कर सकता हूं?

  5. SQL सर्वर में तालिका से Xml मानों और विशेषताओं के लिए क्वेरी कैसे करें?