Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Truyền tham số cho SQL là gì và tại sao tôi cần nó?

Truyền các tham số cho SQL giúp bạn không phải tạo một chuỗi SQL động.

Việc xây dựng các câu lệnh SQL động là một rủi ro bảo mật LỚN vì mọi người có thể đưa mã SQL của riêng họ vào ứng dụng của bạn, có thể thực hiện các lệnh không mong muốn đối với dữ liệu của bạn.

Có một số mẫu hay về các cuộc tấn công SQL Injection có thể xảy ra tại:

Ví dụ về tấn công SQL Injection

Có hai cách để truyền tham số cho câu lệnh SQL. Một là sử dụng Thủ tục lưu trữ như bạn đã đề cập. Cách khác là sử dụng các truy vấn được tham số hóa (thực sự là những gì tôi thích).

Một truy vấn được tham số hóa thực sự khá dễ dàng trong .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);
}

Trong ví dụ đó, tham số là @Username và chúng tôi đã sử dụng Parameters tập hợp SqlCommand đối tượng để chuyển vào giá trị.



  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 Server:SUM () của nhiều hàng bao gồm mệnh đề where

  2. lấy một chuỗi được phân tách bằng dấu phẩy từ các hàng

  3. Tập lệnh được cải tiến trả về tất cả các thuộc tính từ SERVERPROPERTY () trong SQL Server

  4. Ba thắng lợi về hiệu suất máy chủ SQL dễ dàng

  5. Cách tốt nhất để triển khai Hiệp hội đa hình trong SQL Server là gì?