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

मैं एक लॉगिन और एक डेटाबेस उपयोगकर्ता बनाने के लिए एक संग्रहीत कार्यविधि बनाने की कोशिश कर रहा हूँ?

उपयोगकर्ता बनाने के लिए गतिशील SQL का उपयोग करने पर विचार करें। उदाहरण के लिए, @login . नामक सर्वर लॉगिन बनाने के लिए 'DEV' + @login . नामक डेटाबेस उपयोगकर्ता के साथ :

create procedure dbo.CreateLoginAndUser(
        @login varchar(100),
        @password varchar(100),
        @db varchar(100))
as
declare @safe_login varchar(200)
declare @safe_password varchar(200)
declare @safe_db varchar(200)
set @safe_login = replace(@login,'''', '''''')
set @safe_password = replace(@password,'''', '''''')
set @safe_db = replace(@db,'''', '''''')

declare @sql nvarchar(max)
set @sql = 'use ' + @safe_db + ';' +
           'create login ' + @safe_login + 
               ' with password = ''' + @safe_password + '''; ' +
           'create user DEV' + @safe_login + ' from login ' + @safe_login + ';'
exec (@sql)
go

SQL कथन क्लाइंट-साइड बनाना आसान हो सकता है। लेकिन फिर भी, आप create login . के साथ पैरामीटर का उपयोग नहीं कर सके बयान। तो 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. मैं एक समुच्चय युक्त अभिव्यक्ति पर एक समग्र कार्य क्यों नहीं कर सकता, लेकिन मैं इसके चारों ओर एक नया चयन कथन बनाकर ऐसा कर सकता हूं?

  3. मुझे sql सर्वर में टेबल वैरिएबल बनाम अस्थायी टेबल का उपयोग कब करना चाहिए?

  4. कॉलम के मान के आधार पर लगातार पंक्तियों को कैसे खोजें?

  5. SQL सर्वर एक कॉलम में अल्पविराम से अलग स्ट्रिंग को सॉर्ट करता है