因此,我们有一个受限制的用户,该用户应在表上进行更新,插入和删除,并且可能创建,更改和删除表。
我们使用alembic来迁移数据库,因此第二个用户当然必须运行迁移,但是第一个用户无权使用表。
当然,我可以运行一些postgres特定的代码,以在alembic创建的内容上单独更改所有者,但这是不对的。我应该如何解决呢?还是这是postgres问题?我看不到如何在一个数据库不存在的表上授予user1权限。
我知道这是一个老问题,但是我遇到了同样的问题,并为此找到了两个不错的解决方案:
1.快速简便-grant
向升级模板(script.py.mako)添加通用命令:因此,我的外观如下:
def upgrade():
${upgrades if upgrades else "pass"}
sql = "grant all on all tables in schema public to simpleuser"
op.execute(sql)
2.如果您对过于笼统的Grant语句不满意,可以尝试create_table
在创建表之后更改alembic中的指令以添加特定的Grant命令。我发现这种态度不必要地太复杂了,但是如果这是您想要的方向,请在这里阅读有关Alembic API
PS授予表访问权时,如果它们具有序列号,则永远不要忘记其序列
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句