Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 如何在SQLAlchemy中双引号转义_Security_Postgresql_Sqlalchemy - Fatal编程技术网

Security 如何在SQLAlchemy中双引号转义

Security 如何在SQLAlchemy中双引号转义,security,postgresql,sqlalchemy,Security,Postgresql,Sqlalchemy,我希望安全地将必须是双引号转义的模式名传递给数据库引擎,在本例中,在构造GRANT语句时,我希望将包含test的变量安全地传递给数据库 GRANT SELECT ON ALL TABLES IN SCHEMA "test" TO readuser 我不知道如何从SQLAlchemy做到这一点 如果有帮助的话,我正在使用psycopg2连接到postgreSQL我从未尝试过通过SQLAlchemy发出类似于GRANT的数据库维护查询。我想ORM不会发出这种查询,因此我猜您希望使用文本方式发出它。

我希望安全地将必须是双引号转义的模式名传递给数据库引擎,在本例中,在构造GRANT语句时,我希望将包含test的变量安全地传递给数据库

GRANT SELECT ON ALL TABLES IN SCHEMA "test" TO readuser
我不知道如何从SQLAlchemy做到这一点


如果有帮助的话,我正在使用psycopg2连接到postgreSQL

我从未尝试过通过SQLAlchemy发出类似于
GRANT
的数据库维护查询。我想ORM不会发出这种查询,因此我猜您希望使用文本方式发出它。如果是这样的话,文档中的示例将非常简单地介绍如何执行此操作:

session.execute(
    "GRANT SELECT ON ALL TABLES IN SCHEMA :param TO readuser",
    { "param": "test" }
)

我从未尝试过通过SQLAlchemy发出数据库维护查询,比如
GRANT
。我想ORM不会发出这种查询,因此我猜您希望使用文本方式发出它。如果是这样的话,文档中的示例将非常简单地介绍如何执行此操作:

session.execute(
    "GRANT SELECT ON ALL TABLES IN SCHEMA :param TO readuser",
    { "param": "test" }
)

这不起作用,因为参数用于值,将被单引号转义。在写这个问题之前我确实试过了。我很抱歉这样的假设。我没有意识到单引号和双引号在SQL中可能有不同的含义。这不起作用,因为参数用于值,将被单引号转义。在写这个问题之前我确实试过了。我很抱歉这样的假设。我没有意识到单引号和双引号在SQL中可能有不同的含义。