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

एकाधिक ऑब्जेक्ट्स पर SQL अनुदान निष्पादित

आप वाइल्डकार्ड का उपयोग नहीं कर सकते - आपको या तो सभी . को अनुदान देना होगा ऑब्जेक्ट्स (या स्कीमा में सभी ऑब्जेक्ट) - या फिर आपको सभी ऑब्जेक्ट्स को एक-एक करके सूचीबद्ध करना होगा।

आप जो कर सकते हैं वह कुछ इस तरह है - क्या SQL सर्वर आपके लिए उन कथनों को उत्पन्न करता है:

SELECT
   p.Name,
   GrantCmd = 'GRANT EXECUTE ON OBJECT::' + p.name + ' TO [domain\user]'
FROM sys.procedures p
WHERE p.Name LIKE 'XU%'

यह क्वेरी XU . से शुरू होने वाली सभी प्रक्रियाओं को सूचीबद्ध करेगी और एक कॉलम बनाएं जिसमें GRANT EXECUTE ON .... उस प्रक्रिया के लिए बयान।

इसे SQL सर्वर प्रबंधन स्टूडियो में चलाएँ, और फिर परिणामी GrantCmd . की प्रतिलिपि बनाएँ कॉलम, इसे एक नई विंडो में पेस्ट करें, और इसे वहां निष्पादित करें।

और अगर आप वास्तव में इसे स्वचालित करना चाहते हैं, आप इस क्वेरी को एक कर्सर में भी बदल सकते हैं और फिर परिणामी GrantCmd को स्वचालित रूप से निष्पादित करने के लिए गतिशील SQL का उपयोग कर सकते हैं बयान....




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. गतिशील पिवट एसक्यूएल क्वेरी में शून्य मानों को बदलना

  2. Salesforce के साथ SQL सर्वर का उपयोग करने के लिए युक्तियाँ

  3. SQL सर्वर में किसी लिंक किए गए सर्वर से सभी डेटाबेस की सूची बनाएं (T-SQL उदाहरण)

  4. तालिका बनाने के 2 तरीके यदि यह SQL सर्वर में मौजूद नहीं है

  5. एसक्यूएल क्वेरी सी # में अधिकतम लंबाई त्रुटि (यह बहुत लंबी है) को कैसे हल करें