Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Co to jest przekazywanie parametrów do SQL i dlaczego go potrzebuję?

Przekazywanie parametrów do SQL pozwala uniknąć konieczności budowania dynamicznego ciągu SQL.

Tworzenie dynamicznych instrukcji SQL jest OGROMNYM zagrożeniem dla bezpieczeństwa, ponieważ ludzie mogą wstrzykiwać własny kod SQL do Twojej aplikacji, prawdopodobnie wykonując niepożądane polecenia na Twoich danych.

Istnieje kilka dobrych przykładów możliwych ataków SQL Injection pod adresem:

Przykładowe ataki typu SQL Injection

Istnieją dwa sposoby przekazywania parametrów do instrukcji SQL. Jednym z nich jest użycie procedur składowanych, o których wspomniałeś. Drugim jest użycie sparametryzowanych zapytań (co w rzeczywistości jest tym, co wolę).

Zapytanie parametryczne jest w rzeczywistości dość proste w .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);
}

W tym przykładzie parametr to @Username i użyliśmy Parameters kolekcja SqlCommand obiekt do przekazania w wartości.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaki jest najlepszy sposób kontrolowania wersji moich procedur przechowywanych na serwerze SQL?

  2. Zapytanie o listę wszystkich procedur składowanych

  3. SQL Server 2017:dostępne funkcje w systemie Linux

  4. Ustaw sortowanie bazy danych w inicjatorze Code-First Entity Framework

  5. JSON_QUERY() Przykłady w SQL Server (T-SQL)