You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python应用部署Heroku Postgres:如何获取数据库写入权限?

Heroku Postgres 写入权限配置说明
  • 直接使用Heroku数据库URL完成认证
    Heroku提供的DATABASE_URL环境变量已经包含了所有必要的认证信息(用户名、密码、数据库名、主机、端口),不需要额外手动配置权限参数。你可以直接用这个URL连接数据库,同时必须加上SSL要求(Heroku强制要求):

    import os
    import psycopg2
    
    # 直接通过URL连接
    conn = psycopg2.connect(os.getenv('DATABASE_URL'), sslmode='require')
    

    也可以拆分URL参数(和本地连接方式对齐):

    import os
    import psycopg2
    from urllib.parse import urlparse
    
    db_url = os.getenv('DATABASE_URL')
    url_parts = urlparse(db_url)
    conn = psycopg2.connect(
        database=url_parts.path[1:],  # 去掉路径开头的/
        user=url_parts.username,
        password=url_parts.password,
        host=url_parts.hostname,
        port=url_parts.port,
        sslmode='require'
    )
    
  • 默认用户已具备读写权限
    Heroku为你的应用自动创建的Postgres用户,默认拥有该数据库的完整读写权限,无需手动执行授权命令。如果遇到写入报错,优先检查连接代码是否正确,而非权限配置。

  • 验证写入权限的方法
    连接成功后,执行简单的写入操作测试:

    cur = conn.cursor()
    # 假设你已创建test_table表
    cur.execute("INSERT INTO test_table (content) VALUES ('测试写入')")
    conn.commit()  # 必须提交事务才能生效
    cur.close()
    conn.close()
    

    若出现表级权限问题(比如手动创建的表未授权),可通过Heroku CLI进入数据库执行授权:

    # 连接到Heroku数据库
    heroku pg:psql
    # 给用户授权表权限
    GRANT ALL PRIVILEGES ON TABLE test_table TO your_db_user;
    

内容的提问来源于stack exchange,提问作者yee yee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 05:50:50