Python 3.x 如何使用python连接到redshift jdbc url?

Python 3.x 如何使用python连接到redshift jdbc url?,python-3.x,amazon-redshift,Python 3.x,Amazon Redshift,我的数据库url如下所示: jdbc:redshift://<database_name>.company.com:5439/<database_name>?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory 如何使用python连接到此JDBCURL?JDBCURL到底是什么?我是否可以使用以下方式连接到此服务器: import psycopg2 con=psycopg2.connect(

我的数据库url如下所示:

jdbc:redshift://<database_name>.company.com:5439/<database_name>?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory
如何使用python连接到此JDBCURL?JDBCURL到底是什么?我是否可以使用以下方式连接到此服务器:

import psycopg2
con=psycopg2.connect(
    dbname= 'jdbc:redshift://<database_name>.<company>.com:5439/<database_name>?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory',
    host='host',
    port= '5439',
    user= 'user',
    password= 'pwd'
)

我正在使用一种更好的方式通过Python连接到Redshift。 请按照步骤操作-

为获取凭据创建IAM策略- 该保险单附于何处-

a。在EC2或任何其他服务上运行Python代码->将IAM策略附加到角色,并将其附加到该特定服务或IAM角色

b。本地计算机->通过AWS configure CLI命令并通过提供访问密钥和机密访问密钥,连接到您在本地系统上配置的AWS用户

让我们使用Config.ini作为存储任何静态值的中心位置-

我的红移JDBC URL类似于-

jdbc:redshift://dev.<some_value_like_company>.us-west-2.redshift.amazonaws.com:5439/dev_database
[Redshift]
port = 5439
username = dev_user
database_name = dev_database
cluster_id = dev
url = dev.<some_value_like_company>.<region>.redshift.amazonaws.com
region = us-west-2
必要时导入并调用该函数。 我更喜欢上面的方法,而不是对任何用户的用户名和密码值进行硬编码,因为-

这根本不是一个好的做法

此外,如果您使用公共Repo github,那么它会使用户名和密码公开,如果有人出于错误的原因使用它,这可能是一场噩梦

使用IAM是免费且安全的:p

请让我知道这是否有帮助,如果你仍然需要以你想要的方式连接到Redshift,我会在自己尝试后发布答案

Get_凭据的IAM策略示例-

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "redshift:GetClusterCredentials",
                "redshift:CreateClusterUser",
                "redshift:JoinGroup"
            ],
            "Resource": [
                "arn:aws:redshift:us-west-2:<account_number>:dbname:dev/dev_database",
                "arn:aws:redshift:us-west-2:<account_number>:dbuser:dev/dev",
                "arn:aws:redshift:us-west-2:<account_number>:dbuser:dev/dev_read"
            ]
        }
    ]
}
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "redshift:GetClusterCredentials",
                "redshift:CreateClusterUser",
                "redshift:JoinGroup"
            ],
            "Resource": [
                "arn:aws:redshift:us-west-2:<account_number>:dbname:dev/dev_database",
                "arn:aws:redshift:us-west-2:<account_number>:dbuser:dev/dev",
                "arn:aws:redshift:us-west-2:<account_number>:dbuser:dev/dev_read"
            ]
        }
    ]
}