配置 ODBC 驱动程序选项 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

配置 ODBC 驱动程序选项

可以使用驱动程序配置选项来控制 Amazon Redshift ODBC 驱动程序的行为。驱动程序选项不区分大小写。

在 Microsoft Windows 中,您通常可以在配置数据来源名称 (DSN) 时设置驱动程序选项。您还能在以编程方式连接时,或者通过在 HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\your_DSN 中添加或更改注册表项来设置驱动程序选项。有关配置 DSN 的更多信息,请参阅在 Microsoft Windows 上安装和配置 Amazon Redshift ODBC 驱动程序

在 Linux 中,您可以在 odbc.iniamazon.redshiftodbc.ini 文件中设置驱动程序配置选项,如 使用 ODBC 驱动程序管理器在 Linux 和 macOS X 操作系统上配置驱动程序 中所述。在 amazon.redshiftodbc.ini 文件中设置的配置选项适用于所有连接。相反,odbc.ini 文件中的设置配置选项特定于一个连接。在 odbc.ini 中设置的配置选项优先于在 amazon.redshiftodbc.ini 中设置的配置选项。

以下是您可以为 Amazon Redshift ODBC 版本 2.x 驱动程序指定的选项的说明:

AccessKeyID

  • 默认值 – 无

  • 数据类型 – 字符串

用户或角色的 IAM 访问密钥。如果您设置此参数,则还必须指定 SecretAccessKey

此参数为可选的。

app_id

  • 默认值 – 无

  • 数据类型 – 字符串

Okta 提供的与您的 Amazon Redshift 应用程序关联的唯一 ID。

此参数为可选的。

app_name

  • 默认值 – 无

  • 数据类型 – 字符串

您用于验证与 Amazon Redshift 的连接的 Okta 应用程序的名称。

此参数为可选的。

AuthProfile

  • 默认值 – 无

  • 数据类型 – 字符串

用于管理连接设置的身份验证配置文件。如果您设置此参数,则还必须设置 AccessKeyIDSecretAccessKey

此参数为可选的。

AuthType

  • 默认值:标准

  • 数据类型 – 字符串

此选项指定在您使用“Amazon Redshift ODBC 驱动程序 DSN 设置”对话框配置 DSN 时驱动程序使用的身份验证模式:

  • 标准:使用您的 Amazon Redshift 用户名和密码的标准身份验证。

  • Amazon 配置文件:使用配置文件的 IAM 身份验证。

  • Amazon IAM 凭证:使用 IAM 凭证的 IAM 身份验证。

  • 身份提供程序:AD FS:使用 Active Directory 联合身份验证服务 (AD FS) 的 IAM 身份验证。

  • 身份提供商:身份验证插件:一种授权插件,可接受 IAM Identity Center 令牌,或基于 OpenID Connect(OIDC)JSON 的身份令牌(JWT),该令牌由任何与 IAM Identity Center 关联的 Web 身份提供商提供。

  • 身份提供程序:Azure AD:使用 Azure AD 门户的 IAM 身份验证。

  • 身份提供程序:JWT:使用 JSON Web 令牌 (JWT) 的 IAM 身份验证。

  • 身份提供程序:Okta:使用 Okta 的 IAM 身份验证。

  • 身份提供程序:PingFederate:使用 PingFederate 的 IAM 身份验证。

仅当您使用 Windows 驱动程序中的“Amazon Redshift ODBC 驱动程序 DSN 设置”对话框配置 DSN 时,此选项才可用。当您使用连接字符串或非 Windows 计算机配置连接时,驱动程序将根据您指定的凭证,自动确定是使用“标准”、“Amazon 配置文件”还是“Amazon IAM 凭证”身份验证。要使用身份提供程序,您必须设置 plugin_name 属性。

此参数为必需参数。

AutoCreate

  • 默认值 - 0

  • 数据类型 – Boolean

一个布尔值,用于指定当指定的用户不存在时驱动程序是否创建新用户。

  • 1 | TRUE:如果通过 UID 指定的用户不存在,则驱动程序将创建新用户。

  • 0 | FALSE:驱动程序不会创建新用户。如果指定的用户不存在,则身份验证将失败。

此参数为可选的。

CaFile

  • 默认值 – 无

  • 数据类型 – 字符串

用于某些形式的 IAM 身份验证的 CA 证书文件的文件路径。

此参数仅在 Linux 上可用。

此参数为可选的。

client_id

  • 默认值 – 无

  • 数据类型 – 字符串

与 Azure AD 中的 Amazon Redshift 应用程序关联的客户端 ID。

如果通过 Azure AD 服务进行身份验证,则此参数是必需的。

client_ secret

  • 默认值 – 无

  • 数据类型 – 字符串

与 Azure AD 中的 Amazon Redshift 应用程序关联的秘密密钥。

如果通过 Azure AD 服务进行身份验证,则此参数是必需的。

ClusterId

  • 默认值 – 无

  • 数据类型 – 字符串

您要连接到的 Amazon Redshift 集群的名称。它将在 IAM 身份验证中使用。集群 ID 不会在服务器参数中指定。

此参数为可选的。

compression

  • 默认值 – 关闭

  • 数据类型 – 字符串

用于 Amazon Redshift 服务器与客户端或驱动程序之间线路协议通信的压缩方法。

可以指定以下值:

  • lz4:将用于与 Amazon Redshift 进行线路协议通信的压缩方法设置为 lz4

  • zstd:将用于与 Amazon Redshift 进行线路协议通信的压缩方法设置为 zstd

  • off:与 Amazon Redshift 进行线路协议通信时不使用压缩方法。

此参数为可选的。

数据库

  • 默认值 – 无

  • 数据类型 – 字符串

您要访问的 Amazon Redshift 数据库的名称。

此参数为必需参数。

DatabaseMetadataCurrentDbOnly

  • 默认值:1

  • 数据类型 – Boolean

一个布尔值,用于指定驱动程序是否从多个数据库和集群返回元数据。

  • 1 | TRUE:驱动程序仅从当前数据库返回元数据。

  • 0 | FALSE。驱动程序将跨多个 Amazon Redshift 数据库和集群返回元数据。

此参数为可选的。

dbgroups_filter

  • 默认值 – 无

  • 数据类型 – 字符串

在使用 Azure、浏览器 Azure 和浏览器 SAML 身份验证类型时,您可以指定的正则表达式,用于筛选出从 Amazon Redshift 的 SAML 响应中收到的数据库组 (DbGroup)。

此参数为可选的。

驱动程序

  • 默认值:Amazon Redshift ODBC 驱动程序 (x64)

  • 数据类型 – 字符串

驱动程序的名称。唯一受支持的值是 Amazon Redshift ODBC 驱动程序(x64)

如果您未设置 DSN,则此参数是必需的。

DSN

  • 默认值 – 无

  • 数据类型 – 字符串

驱动程序数据来源名称的名称。应用程序将在 SQLDriverConnect API 中指定 DSN。

如果您未设置驱动程序,则此参数是必需的。

EndpointUrl

  • 默认值 – 无

  • 数据类型 – 字符串

用于与 Amazon Redshift Coral 服务通信以进行 IAM 身份验证的覆盖端点。

此参数为可选的。

ForceLowercase

  • 默认值 - 0

  • 数据类型 – Boolean

一个布尔值,用于指定在使用单点登录身份验证时,驱动程序是否会将从身份提供者发送到 Amazon Redshift 的所有数据库组 (DbGroup) 小写。

  • 1 | TRUE:驱动程序会将从身份提供程序发送的所有数据库组 (DbGroup) 小写。

  • 0 | FALSE:驱动程序不会更改数据库组 (DbGroup)。

此参数为可选的。

group_federation

  • 默认值 - 0

  • 数据类型 – Boolean

一个布尔值,指定 getClusterCredentialsWithIAM API 是否用于在预调配集群中获取临时集群凭证。此选项允许 IAM 用户在预调配集群中与 Redshift 数据库角色进行集成。请注意,此选项不适用于 Redshift Serverless 命名空间。

  • 1 | TRUE:驱动程序使用 getClusterCredentialsWithIAM API 来获取预调配集群中的临时集群凭证。

  • 0 | FALSE:驱动程序使用默认 getClusterCredentials API 来获取预调配集群中的临时集群凭证。

此参数为可选的。

https_proxy_host

  • 默认值 – 无

  • 数据类型 – 字符串

您要通过其来传递 IAM 身份验证过程的代理服务器的主机名或 IP 地址。

此参数为可选的。

https_proxy_password

  • 默认值 – 无

  • 数据类型 – 字符串

用于访问代理服务器的密码。它将用于 IAM 身份验证。

此参数为可选的。

https_proxy_port

  • 默认值 – 无

  • 数据类型 – 整数

代理服务器用于侦听客户端连接的端口号。它将用于 IAM 身份验证。

此参数为可选的。

https_proxy_username

  • 默认值 – 无

  • 数据类型 – 字符串

用于访问代理服务器的用户名。它用于 IAM 身份验证。

此参数为可选的。

IAM

  • 默认值 - 0

  • 数据类型 – Boolean

一个布尔值,用于指定驱动程序是否使用 IAM 身份验证方法对连接进行身份验证。

  • 1 | TRUE:驱动程序将使用某种 IAM 身份验证方法(使用访问密钥和秘密密钥对、配置文件或凭证服务)。

  • 0 | FALSE。驱动程序将使用标准身份验证(使用您的数据库用户名和密码)。

此参数为可选的。

identity_namespace

  • 默认值 – 无

  • 数据类型 – 字符串

使用 IdpTokenAuthPlugin 进行身份验证时要使用的身份命名空间。它有助于 Redshift 确定要使用哪个 IAM Identity Center 实例。

如果只有一个 IAM Identity Center 实例,或者如果设置了默认身份命名空间,则此参数可选,否则为必需。

idp_host

  • 默认值 – 无

  • 数据类型 – 字符串

您用于对 Amazon Redshift 进行身份验证的 IdP(身份提供者)主机。

此参数为可选的。

idp_port

  • 默认值 – 无

  • 数据类型 – 整数

您用于对 Amazon Redshift 进行身份验证的 IdP(身份提供程序)的端口。根据您在创建、修改或迁移集群时选择的端口,允许访问所选端口。

此参数为可选的。

idp_response_timeout

  • 默认值 – 120

  • 数据类型 – 整数

当通过浏览器插件使用 SAML 或 Azure AD 服务时,驱动程序等待身份提供程序发出 SAML 响应的秒数。

此参数为可选的。

idp_tenant

  • 默认值 – 无

  • 数据类型 – 字符串

与您的 Amazon Redshift 应用程序关联的 Azure AD 租户 ID。

如果通过 Azure AD 服务进行身份验证,则此参数是必需的。

idp_use_https_proxy

  • 默认值 - 0

  • 数据类型 – Boolean

一个布尔值,用于指定驱动程序是否通过代理服务器传递身份提供程序 (IdP) 的身份验证过程。

  • 1 | TRUE:驱动程序将通过代理服务器传递 IdP 身份验证过程。

  • 0 | FALSE。驱动程序不会通过代理服务器传递 IdP 身份验证过程。

此参数为可选的。

InstanceProfile

  • 默认值 - 0

  • 数据类型 – Boolean

一个布尔值,用于指定驱动程序在配置为使用配置文件进行身份验证时是否使用 Amazon EC2 实例配置文件。

  • 1 | TRUE:驱动程序将使用 Amazon EC2 实例配置文件。

  • 0 | FALSE。驱动程序将改用通过“配置文件名称”选项(配置文件)指定的串联角色配置文件。

此参数为可选的。

KeepAlive

  • 默认值:1

  • 数据类型 – Boolean

一个布尔值,用于指定驱动程序是否使用 TCP keepalive 来防止连接超时。

  • 1 | TRUE:驱动程序将使用 TCP keepalive 来防止连接超时。

  • 0 | FALSE。驱动程序不会使用 TCP keepalive。

此参数为可选的。

KeepAliveCount

  • 默认值 - 0

  • 数据类型 – 整数

连接被视为断开前可能丢失的 TCP keepalive 包的数量。当此参数设置为 0 时,驱动程序将使用此设置的系统默认值。

此参数为可选的。

KeepAliveInterval

  • 默认值 - 0

  • 数据类型 – 整数

两次传输 TCP keepalive 间隔的秒数。当此参数设置为 0 时,驱动程序将使用此设置的系统默认值。

此参数为可选的。

KeepAliveTime

  • 默认值 - 0

  • 数据类型 – 整数

驱动程序发送 TCP Keepalive 包前处于不活动状态的秒数。当此参数设置为 0 时,驱动程序将使用此设置的系统默认值。

此参数为可选的。

listen_port

  • 默认值:7890

  • 数据类型 – 整数

通过浏览器插件使用 SAML 或 Azure AD 服务时,驱动程序用于接收来自身份提供程序的 SAML 响应的端口。

此参数为可选的。

login_url

  • 默认值 – 无

  • 数据类型 – 字符串

在使用通用浏览器 SAML 插件时,身份提供程序网站上的资源的 URL。

如果通过浏览器插件使用 SAML 或 Azure AD 服务进行身份验证,则此参数是必需的。

loginToRp

  • 默认值:urn:amazon:webservices

  • 数据类型 – 字符串

要用于 AD FS 身份验证类型的信赖方信任。

此字符串为可选项。

LogLevel

  • 默认值 - 0

  • 数据类型 – 整数

使用此属性可以启用或禁用驱动程序中的日志记录,并指定包含在日志中的详细信息量。我们建议您启用日志记录的时长仅足以捕获问题即可,因为日志记录会降低性能,并会占用大量磁盘空间。

将该属性设置为以下值之一:

  • 0:关闭。禁用所有日志记录。

  • 1:错误。记录也许不会导致驱动程序中止运行但会生成错误的错误事件。

  • 2:API_CALL。记录带有函数参数值的 ODBC API 函数调用。

  • 3:信息。记录描述驱动程序进度的一般信息。

  • 4:MSG_PROTOCOL。记录驱动程序消息协议的详细信息。

  • 5:调试。记录所有驱动程序活动

  • 6:DEBUG_APPEND。保留所有驱动程序活动的附加日志。

启用日志记录后,驱动程序将在您在 LogPath 属性中指定的位置生成以下日志文件:

  • 一个 redshift_odbc.log.1 文件,它将记录连接握手期间发生的驱动程序活动。

  • 一个 redshift_odbc.log 文件,用于与数据库建立连接后的所有驱动程序活动。

此参数为可选的。

LogPath

  • 默认值:特定于操作系统的 TEMP 目录

  • 数据类型 – 字符串

LogLevel 大于 0 时,驱动程序保存日志文件的文件夹的完整路径。

此参数为可选的。

Min_TLS

  • 默认值 – 1.2

  • 数据类型 – 字符串

驱动程序允许数据存储以用于对连接进行加密的 TLS/SSL 的最低版本。例如,如果指定了 TLS 1.2,则无法使用 TLS 1.1 对连接进行加密。

Min_TLS 接受以下值:

  • 1.0:连接必须至少使用 TLS 1.0。

  • 1.1:连接必须至少使用 TLS 1.1。

  • 1.2:连接必须至少使用 TLS 1.2。

此参数为可选的。

partner_spid

  • 默认值 – 无

  • 数据类型 – 字符串

在使用 PingFederate 服务验证连接时使用的合作伙伴 SPID(服务提供商 ID)值。

此参数为可选的。

密码| PWS

  • 默认值 – 无

  • 数据类型 – 字符串

与您在“用户”字段(UID | 用户| LogonID)中提供的数据库用户名相对应的密码。

此参数为可选的。

plugin_name

  • 默认值 – 无

  • 数据类型 – 字符串

要用于身份验证的凭证提供程序插件名称。

支持下列值:

  • ADFS:使用 Active Directory 联合身份验证服务进行身份验证。

  • AzureAD:使用 Microsoft Azure Active Directory (AD) 服务进行身份验证。

  • BrowserAzureAD:使用适用于 Microsoft Azure Active Directory (AD) 服务的浏览器插件进行身份验证。

  • BrowserSAML:使用适用于 SAML 服务(如 Okta 或 Ping)的浏览器插件进行身份验证。

  • IdpTokenAuthPlugin – 一种授权插件,可接受 IAM Identity Center 令牌,或者基于 OpenID Connect(OIDC)JSON 的身份令牌(JWT),该令牌由与 IAM Identity Center 关联的 Web 身份提供商提供。

  • JWT:使用 JSON Web 令牌 (JWT) 进行身份验证。

  • Ping:使用 PingFederate 服务进行身份验证。

  • Okta:使用 Okta 服务进行身份验证。

此参数为可选的。

端口 | PortNumber

  • 默认值:5439

  • 数据类型 – 整数

Amazon Redshift 服务器用于侦听客户端连接的 TCP 端口号。

此参数为可选的。

preferred_role

  • 默认值 – 无

  • 数据类型 – 字符串

您希望在 Amazon Redshift 连接期间担任的角色。它将用于 IAM 身份验证。

此参数为可选的。

配置文件

  • 默认值 – 无

  • 数据类型 – 字符串

用于在 Amazon Redshift 中进行身份验证的用户 Amazon 配置文件的名称。

  • 如果“使用实例配置文件”参数(InstanceProfile 属性)设置为 1 | TRUE,则该设置将优先,驱动程序将改用 Amazon EC2 实例配置文件。

  • 包含配置文件的凭证文件的默认位置为 ~/.aws/CredentialsAWS_SHARED_CREDENTIALS_FILE 环境变量可用于指向其他凭证文件。

此参数为可选的。

provider_name

  • 默认值 – 无

  • 数据类型 – 字符串

用户使用 CREATE IDENTITY PROVIDER(创建身份提供程序)查询创建的身份验证提供程序。它将用于本机 Amazon Redshift 身份验证。

此参数为可选的。

ProxyHost

  • 默认值 – 无

  • 数据类型 – 字符串

要通过其连接的代理服务器的主机名或 IP 地址。

此参数为可选的。

ProxyPort

  • 默认值 – 无

  • 数据类型 – 整数

代理服务器用于侦听客户端连接的端口号。

此参数为可选的。

ProxyPwd

  • 默认值 – 无

  • 数据类型 – 字符串

用于访问代理服务器的密码。

此参数为可选的。

ProxyUid

  • 默认值 – 无

  • 数据类型 – 字符串

用于访问代理服务器的用户名。

此参数为可选的。

ReadOnly

  • 默认值 - 0

  • 数据类型 – Boolean

一个布尔值,用于指定驱动程序是否处于只读模式。

  • 1 | TRUE:连接处于只读模式,无法写入数据存储。

  • 0 | FALSE:连接不处于只读模式,可以写入数据存储。

此参数为可选的。

region

  • 默认值 – 无

  • 数据类型 – 字符串

您的集群所在的 Amazon 区域。

此参数为可选的。

SecretAccessKey

  • 默认值 – 无

  • 数据类型 – 字符串

用户或角色的 IAM 秘密密钥。如果您设置此参数,则还必须设置 AccessKeyID

此参数为可选的。

SessionToken

  • 默认值 – 无

  • 数据类型 – 字符串

与您用于身份验证的 IAM 角色关联的临时 IAM 会话令牌。

此参数为可选的。

服务器 | HostName | 主机

  • 默认值 – 无

  • 数据类型 – 字符串

要连接到的端点服务器。

此参数为必需参数。

ssl_insecure

  • 默认值 - 0

  • 数据类型 – Boolean

一个布尔值,用于指定驱动程序是否检查 IdP 服务器证书的真实性。

  • 1 | TRUE:驱动程序不检查 IdP 服务器证书的真实性。

  • 0 | FALSE:驱动程序检查 IdP 服务器证书的真实性

此参数为可选的。

SSLMode

  • 默认值verify-ca

  • 数据类型 – 字符串

在连接到 Amazon Redshift 时要使用的 SSL 证书验证模式。以下是可能的值:

  • verify-full:仅使用 SSL、受信任的证书颁发机构和与证书匹配的服务器名称进行连接。

  • verify-ca:仅使用 SSL 和受信任的证书颁发机构进行连接。

  • require:仅使用 SSL 进行连接。

  • prefer:使用 SSL 进行连接(如果可用)。否则,将在不使用 SSL 的情况下进行连接。

  • allow:默认情况下,不使用 SSL 进行连接。如果服务器需要 SSL 连接,则使用 SSL。

  • disable:不使用 SSL 进行连接。

此参数为可选的。

StsConnectionTimeout

  • 默认值 - 0

  • 数据类型 – 整数

IAM 连接的最长等待时间(以秒为单位)。如果设置为 0 或未指定,驱动程序将为每次 Amazon STS 调用等待 60 秒。

此参数为可选的。

StsEndpointUrl

  • 默认值 – 无

  • 数据类型 – 字符串

此选项指定用于与 Amazon Security Token Service (Amazon STS) 通信的覆盖端点。

此参数为可选的。

令牌

  • 默认值 – 无

  • 数据类型 – 字符串

IAM Identity Center 提供的访问令牌,或 OpenID Connect(OIDC)JSON Web 令牌(JWT,JSON Web Token),该令牌由与 IAM Identity Center 关联的 Web 身份提供商提供。您的应用程序必须通过 IAM Identity Center 或与 IAM Identity Center 关联的身份供应商,对您的应用程序用户进行身份验证,从而生成此令牌。

此参数可用于 IdpTokenAuthPlugin

token_type

  • 默认值 – 无

  • 数据类型 – 字符串

IdpTokenAuthPlugin 中使用的令牌类型。

可以指定以下值:

ACCESS_TOKEN

如果您使用 IAM Identity Center 提供的访问令牌,请输入此项。

EXT_JWT

如果您使用 OpenID Connect(OIDC)JSON Web 令牌(JWT)(该令牌由与 IAM Identity Center 集成的基于 Web 的身份提供商提供),请输入此项。

此参数可用于 IdpTokenAuthPlugin

UID | 用户 | LogonID

  • 默认值 – 无

  • 数据类型 – 字符串

用于访问 Amazon Redshift 服务器的用户名。

如果使用数据库身份验证,则此参数是必需项。

web_identity_token

  • 默认值 – 无

  • 数据类型 – 字符串

身份提供程序提供的 OAUTH 令牌。它将在 JWT 插件中使用。

如果您将 plugin_name 参数设置为 BasicJwtCredentialsProvider,则此参数是必需项。