2

二重引用符でエスケープする必要があるスキーマ名をデータベース エンジンに安全に渡したいと考えています。この場合、GRANT ステートメントを作成するときに、test を含む変数をデータベースに安全に渡したいと考えています。

GRANT SELECT ON ALL TABLES IN SCHEMA "test" TO readuser

SQLAlchemy からこれを行う方法がわかりません。

それが役立つ場合、私はpsycopg2を使用してpostgreSQLに接続しています

4

1 に答える 1

-1

GRANTSQLAlchemyのようなデータベース メンテナンス クエリを発行しようとしたことはありません。ORM はこの種のクエリを発行しないと思われるため、 Session.executeを使用してテキストで発行する必要があると思います。もしそうなら、ドキュメントの例はそれを行う方法について非常に簡単です:

session.execute(
    "GRANT SELECT ON ALL TABLES IN SCHEMA :param TO readuser",
    { "param": "test" }
)
于 2012-10-12T00:44:53.307 に答える