繁体   English   中英

Npgsql CREATE USER 使用 ExcuteNonQuery 参数

[英]Npgsql CREATE USER using ExcuteNonQuery parameter

您好我正在尝试将SQL CREATE USERNpgsqlParameter一起使用(以防止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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM