python – 如何为所有alembic创建一个不同的所有者?

python – 如何为所有alembic创建一个不同的所有者?,第1张

概述因此,我们有一个受限制的用户,应该对表进行更新,插入和删除,以及可以创建,更改和删除表的用户. 我们使用alembic来迁移数据库,因此当然第二个用户必须运行迁移,但第一个用户无权使用这些表. 当然,我可以运行一些postgres特定的代码来单独更改所有的alembic创建的所有者,但这是不对的.我该怎么解决这个问题?或者这是一个postgres问题?我不知道如何在一个数据库的非现有表上授予use 因此,我们有一个受限制的用户,应该对表进行更新,插入和删除,以及可以创建,更改和删除表的用户.

我们使用alembic来迁移数据库,因此当然第二个用户必须运行迁移,但第一个用户无权使用这些表.

当然,我可以运行一些postgres特定的代码来单独更改所有的alembic创建的所有者,但这是不对的.我该怎么解决这个问题?或者这是一个postgres问题?我不知道如何在一个数据库的非现有表上授予user1内容.

解决方法 我知道这是一个老问题,但我遇到了同样的问题,并找到了两个不错的解决方案:

1.
快速简便 – 在升级模板(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语句不满意,可以尝试更改alembic中的create_table指令,以在创建表后添加特定的grant命令.我发现这种态度太过于复杂,但如果这是你想要的方向,请阅读有关alembic API here的信息

附:在授予对表的访问权限时,如果有序列,则永远不要忘记它们的序列

总结

以上是内存溢出为你收集整理的python – 如何为所有alembic创建一个不同的所有者?全部内容,希望文章能够帮你解决python – 如何为所有alembic创建一个不同的所有者?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1196947.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存