Archive for the ‘Bảo mật’ Category

 

Thiết Lập Cho xp_cmdshell

SQL Server là hệ quản trị dữ liệu, khả năng chính của nó là lưu trữ và truy xuất dữ liệu. Tuy nhiên đôi lúc bạn cần thực hiện một số thao tác của windows từ SQL Server, ví dụ khi bạn cần viết sql script để copy file từ folder này sang folder khác; hoặc tự động restore từ file backup mới nhất dựa theo ngày tạo (tên file không biết trước). SQL Server cung cấp thủ tục xp_cmdshell trong master database để làm việc này.
Để có thể gọi đến xp_cmdshell đòi hỏi một vài bước thiết lập.
Nếu bạn là DBA với quyền sysadmin, bạn cần cấu hình lại server để bật xp_cmdshell (khi SQL Server mới cài đặt tính năng này bị tắt): … đọc tiếp »

Posted on 14/3/2014 by Vũ Huy Tâm | Categories: Bảo mật, Database Administration, Uncategorized

Vì sao nên tránh viết SQL code trong ứng dụng

Trong ứng dụng khi cần tương tác với database, có lẽ một cách làm rất phổ biến là tạo lập một chuỗi chứa lệnh SQL, ghép các giá trị  nhập vào của người dùng thành một lệnh SQL hoàn chỉnh, rồi thực hiện chuỗi lệnh SQL đó. Như ví dụ dưới đây:

string cmdStr = "INSERT INTO Customer(Name, Address, Email, Phone) VALUES('" + txtName.Text + "', '" + txtEmail.Text + "','" + txtPhone.Text + "')";
conn.Open();
SqlCommand cmd = new SqlCommand(cmdStr, conn);
cmd.ExecuteNonQuery();

Cách làm này có ưu điểm tiện lợi, giúp quá trình phát triển code nhanh (không phải chuyển qua lại giữa Visual Studio và Management Studio). Tuy nhiên nó tiềm ẩn rất nhiều vấn đề (cách làm tối ưu là viết một thủ tục trong database rồi từ ứng dụng gọi thủ tục này và truyền các tham số cho nó): … đọc tiếp »