[英]Npgsql CREATE USER using ExcuteNonQuery parameter
您好我正在尝试将SQL CREATE USER
与NpgsqlParameter
一起使用(以防止sql 注入):
var p = new NpgsqlParameter("p1", "testuser");
using (var cmd = new NpgsqlCommand("CREATE USER @p1", (NpgsqlConnection)sqlConn))
{
cmd.Parameters.Add(p)
cmd.ExecuteNonQuery();
}
我收到运行时错误
$1 或附近的语法错误
谁能帮帮我吗?
las,您不能将绑定变量与CREATE USER
一起使用。 要防止 sql 注入,请使用引号: "me; delete from myTable"
-> "'me; delete from myTable'"
:
string userName = ...
using (var cmd = new NpgsqlCommand(
$"CREATE USER '{userName.Repace("'", "''")}'",
(NpgsqlConnection)sqlConn)) {
cmd.ExecuteNonQuery();
}
在这里,我们将userName
中的每个撇号加倍,然后将更改后的名称包装到撇号中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.