Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Apa yang melewati parameter ke SQL dan mengapa saya membutuhkannya?

Meneruskan parameter ke SQL akan menyelamatkan Anda dari keharusan membuat string SQL dinamis.

Membuat pernyataan SQL dinamis adalah risiko keamanan BESAR karena orang dapat memasukkan kode SQL mereka sendiri ke dalam aplikasi Anda, kemungkinan mengeksekusi perintah yang tidak diinginkan terhadap data Anda.

Ada beberapa contoh bagus dari kemungkinan serangan SQL Injection di:

Serangan Injeksi SQL dengan Contoh

Ada dua cara untuk melewatkan parameter ke pernyataan SQL. Salah satunya adalah dengan menggunakan Prosedur Tersimpan seperti yang Anda sebutkan. Yang lainnya adalah menggunakan kueri berparameter (yang sebenarnya saya sukai).

Kueri berparameter sebenarnya cukup mudah di .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);
}

Dalam contoh itu, parameternya adalah @Username dan kami menggunakan Parameters kumpulan SqlCommand objek untuk meneruskan nilai.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah mungkin menjalankan beberapa pernyataan DDL di dalam transaksi (dalam SQL Server)?

  2. Buat Database di SQL Server 2017

  3. Permintaan untuk membuat daftar semua prosedur tersimpan

  4. Penggabungan yang Dikelompokkan di SQL Server

  5. Eksekusi SQL Dinamis di SQL Server