【发布时间】:2014-02-11 13:10:00
【问题描述】:
我希望能够从远程计算机登录到我的 AWS postgres 数据库。我正在使用以下Fabric 脚本:
import sys
from fabric.api import env, run, abort
env.port = 123
env.use_ssh_config = True
def setuser(user):
"""Sets the ssh user for the fabric script"""
env.user = user
env.password = 'mypassword'
def setenv(server):
"""Sets the environment for the fabric script"""
env.hosts = ['staging']
def sync():
# log into AWS server
run("psql --host=staging.xxx.rds.amazonaws.com --username=x_user --port=5432 --password --dbname=x_database")
run("mypassword")
我使用以下命令运行此 Fabric 脚本:
fab -f sync_staging.py sync --password=mypassword
这会将我登录到远程计算机,运行run("psql .... 行,然后提示我输入密码:
[stage] out: Password for user x_user:
有什么方法可以让我提供密码(或响应提示)以便它自动登录?
【问题讨论】:
-
您是否尝试在 pg_hba.conf 文件中将数据库配置设置为
trust?我不确定,但我认为 psql 不要求输入密码是必需的。 -
我无法编辑
pg_hba.conf文件,因为 AWS 不允许这样做。 -
我刚刚在RDS控制台上查看,在“参数组”下,可以更改一堆参数,并且有一个“可修改”标志。 hba.conf 文件不可修改,因此可能无法允许 IP 无密码访问。
标签: python postgresql amazon-web-services fabric amazon-rds