加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-20 13:37:36 所属栏目:Python 来源:网络整理
导读:因此,我们有一个受限制的用户,应该对表进行更新,插入和删除,以及可以创建,更改和删除表的用户. 我们使用alembic来迁移数据库,因此当然第二个用户必须运行迁移,但第一个用户无权使用这些表. 当然,我可以运行一些postgres特定的代码来单独更改所有的alembic创
因此,我们有一个受限制的用户,应该对表进行更新,插入和删除,以及可以创建,更改和删除表的用户.

我们使用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的信息

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读