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

SQL में पासिंग पैरामीटर क्या है और मुझे इसकी आवश्यकता क्यों है?

SQL को पैरामीटर पास करने से आप एक डायनामिक SQL स्ट्रिंग बनाने से बच जाते हैं।

डायनेमिक SQL स्टेटमेंट बनाना एक बहुत बड़ा सुरक्षा जोखिम है क्योंकि लोग आपके एप्लिकेशन में अपना स्वयं का SQL कोड इंजेक्ट कर सकते हैं, संभवतः आपके डेटा के विरुद्ध अवांछनीय कमांड निष्पादित कर सकते हैं।

संभावित SQL इंजेक्शन हमलों के कुछ अच्छे नमूने यहां दिए गए हैं:

उदाहरण के लिए SQL इंजेक्शन अटैक्स

SQL स्टेटमेंट में पैरामीटर पास करने के दो तरीके हैं। एक संग्रहीत प्रक्रियाओं का उपयोग करना है जैसा आपने उल्लेख किया है। दूसरा पैरामीटरयुक्त प्रश्नों का उपयोग करना है (जो वास्तव में मुझे पसंद है)।

एक पैरामीटरयुक्त क्वेरी वास्तव में .NET में काफी आसान है:

using(SqlConnection conn = new SqlConnection(connString))
{
    SqlCommand command = 
        new SqlCommand("SELECT * FROM Users WHERE Username = @Username", conn);

    command.Parameters.Add(new SqlParameter("@Username", "Justin Niessner"));

    SqlDataAdapter adapter = new SqlDataAdapter(command);
    DataTable dt = new DataTable();

    adapter.Fill(dt);
}

उस उदाहरण में, पैरामीटर @Username . था और हमने Parameters . का इस्तेमाल किया SqlCommand . का संग्रह मूल्य में पारित करने के लिए आपत्ति।



  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 सर्वर में देखें (T-SQL:sp_columns)

  2. SQL सर्वर 2019 नई सुविधाएँ

  3. संग्रहीत प्रक्रिया SQL सर्वर में पैरामीटर के रूप में NULL को कैसे प्रतिबंधित करें?

  4. एक उदाहरण पर सभी डेटाबेस पर एक ही क्वेरी कैसे चलाएं?

  5. SQL सर्वर में दो तिथियों के बीच सभी तिथियां प्राप्त करें