मैं टी-एसक्यूएल (एसएसएमएस नहीं) का उपयोग करके डेटाबेस में लॉगिन कैसे कर सकता हूं


12

मैं एक प्रोग्राम लिख रहा हूँ जिसके लिए मुझे कोड में सभी अनुमतियाँ और सब कुछ निर्दिष्ट करने की आवश्यकता है। मैं इस भाग में फंस गया हूँ:

यहाँ छवि विवरण दर्ज करें

मैं सिर्फ msdb डेटाबेस के लिए "मानचित्र" के तहत छोटे बॉक्स पर क्लिक करने और उस उपयोगकर्ता को SqlAgentUser भूमिका सौंपने के बराबर करना चाहता हूं। मुझे SQL Server एजेंट नौकरियों को जोड़ने / संपादित करने में सक्षम होने के लिए एक उपयोगकर्ता की आवश्यकता है। मैं SSMS का उपयोग करके सेटिंग्स को सही कर सकता हूं, लेकिन मैं अपने जीवन के लिए यह पता नहीं लगा सकता कि इसे कच्चे SQL में कैसे किया जाए।

मैंने ALTER LOGIN में देखा है लेकिन मुझे ऐसा कुछ नहीं दिख रहा है जिसकी मुझे आवश्यकता है। मुझे संदेह है कि मैं अभी Google को सही शब्द नहीं जानता हूं। मैं आम तौर पर इस तरह की बात नहीं करता।

किसी भी प्रकार की मदद की बेहद सराहना की जाती है!


3
आप "स्क्रिप्ट उत्पन्न कर सकते हैं" जो मुझे लगता है कि भविष्य की परियोजनाओं में आपकी मदद करेंगे। स्क्रीन के शीर्ष पर।
रेसर SQL

1
@ राफेलपिसिनसेली ओह माय गश जो इतना मददगार है! मैंने भी कभी नहीं देखा कि वहाँ! धन्यवाद!
एडी_काट

मैं कोड पर वास्तव में बुरा हूँ, यह मुझे बहुत मदद करता है।
घुड़दौड़ का घोड़ा एसक्यूएल

जवाबों:


18
USE msdb;
GO
CREATE USER shims FROM LOGIN shims;
GO
ALTER ROLE SqlAgentUserRole ADD MEMBER shims;
GO

इसके अलावा, भविष्य के संदर्भ के लिए, किसी भी समय आप जानते हैं कि यूआई में कुछ करना है, लेकिन स्क्रिप्ट में नहीं, यह वही है जो Scriptअधिकांश संवादों के लिए विकल्प है - यह आपको दिखाएगा कि एसएसएमएस किस स्क्रिप्ट को निष्पादित करेगा:

यहाँ छवि विवरण दर्ज करें


3

यदि आप वर्तमान \ डिफ़ॉल्ट डेटाबेस को किसी भिन्न प्रयास में बदलना चाहते हैं:

alter login <loginname> with default_database = <dbname>;

अब, ऊपर दिए गए लॉगिन के लिए एक उपयोगकर्ता बनाएं

 use <dbname>;
 create user <username> from login <loginname>;

और अब आप नीचे दिए गए लॉगिन के लिए उपर्युक्त उपयोगकर्ता को भूमिकाएँ सौंप सकते हैं:

use <dbname>
exec sp_addrolemember 'db_owner', '<username>';

3
डॉक्स से :This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Use ALTER ROLE instead.
हारून बर्ट्रेंड

तो क्या मुझे हर बार इस डेटाबेस के साथ msdb में कुछ भी करने के लिए डिफ़ॉल्ट डेटाबेस को बदलना चाहिए? ऊपर की विंडो में ऐसा लगता है कि आपके पास एक समय में एक उपयोगकर्ता के साथ एक से अधिक डेटाबेस हो सकते हैं ... क्या यह गलत है?
एडी_काट

@eddie_cat नहीं, मुझे डिफ़ॉल्ट डेटाबेस को बदलने के लिए इस मामले में कोई कारण नहीं दिखता है, जब तक कि आप नहीं चाहते कि उपयोगकर्ता हमेशा डिफ़ॉल्ट रूप से कुछ डेटाबेस से कनेक्ट हो।
हारून बर्ट्रेंड

लॉगिन के लिए उपयोगकर्ता बनाने के लिए; सही सिंटैक्स निम्नानुसार है: ------------------------------------------- ------------------------------ उपयोग [DatabaseName] GO उपयोगकर्ता बनाएं [उपयोगकर्ता नाम] के लिए प्रवेश [LOGINNAME] GO
कुंदन Dasange
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.