如何在Google Colab Notebook中隐藏非敏感数据库连接凭证?
隐藏Google Colab中Heroku PostgreSQL连接凭证的方法
方法1:使用Colab内置的秘密管理器(推荐)
这是最安全且便捷的方式,凭证会加密存储,不会在笔记本代码中暴露:
- 打开你的Colab笔记本,点击左侧边栏的「🔑 Secrets」按钮(若未显示,点击侧边栏顶部的「+」图标调出)
- 点击「Add a new secret」,添加一个秘密项:
- 名称设为
HEROKU_DB_URL,值填入Heroku提供的完整数据库连接URL(也可以拆分为DB_USER、DB_PASSWORD等单独字段)
- 名称设为
- 在代码中通过以下方式调用凭证:
import psycopg2 from google.colab import userdata # 获取完整连接URL db_url = userdata.get('HEROKU_DB_URL') # 建立连接 conn = psycopg2.connect(db_url) # 若拆分存储凭证,代码如下: # db_user = userdata.get('DB_USER') # db_password = userdata.get('DB_PASSWORD') # db_host = userdata.get('DB_HOST') # db_port = userdata.get('DB_PORT') # db_name = userdata.get('DB_NAME') # conn = psycopg2.connect(user=db_user, password=db_password, host=db_host, port=db_port, dbname=db_name)
- 分享笔记本后,同事需要在自己的Colab秘密管理器中添加同名的秘密项(你可以私下将凭证值发给他们,或让他们从Heroku获取对应权限的凭证)
方法2:让同事自行获取Heroku凭证
如果同事有Heroku账号,可让他们用自己的凭证连接:
- 同事登录Heroku账号,找到目标PostgreSQL实例
- 进入实例的「Settings」页面,点击「Database Credentials」查看连接URL或拆分的凭证信息
- 让他们在自己的Colab中用上述方法(秘密管理器或临时输入)配置凭证,每个人用自己的权限连接数据库
方法3:临时输入凭证(适合快速演示)
若只是临时分享,可让同事手动输入凭证,避免代码硬编码:
import psycopg2 # 弹出输入框让同事输入连接URL db_url = input("请输入Heroku数据库连接URL:") # 建立连接 conn = psycopg2.connect(db_url)
- 这种方式无需额外配置,但每次运行都需要手动输入凭证,适合短时间演示场景
内容的提问来源于stack exchange,提问作者Shawn Armstrong
相关产品推荐
相关产品推荐

