Django / Postgres只写数据库

时间:2017-09-12 19:08:50

标签: python django postgresql

出于特定的安全原因,客户询问我们是否可以将“只写”数据库集成到Django Web应用程序中。我尝试创建一个数据库,然后通过以下方式限制对psql中某个表的访问:

REVOKE SELECT ON TABLE testapp_testmodel FROM writeonlyuser;

然后尝试在Django shell中保存模型......

p = new TestModel(test_field="testvalue")
p.save(using="writeonlydb")

...生成此错误:

ProgrammingError: permission denied for relation testapp_testmodel

我假设是因为ORM生成的SQL包含了新创建的对象id的返回值,该id被视为读取:

INSERT INTO "testapp_testmodel" ("test_field") VALUES ('testvalue') RETURNING "testapp_testmodel"."id"

因此,我的问题是,这基本上不可能吗?或者是否有其他方式?

0 个答案:

没有答案