配置 ODBC 驱动程序选项
可以使用驱动程序配置选项来控制 Amazon Redshift ODBC 驱动程序的行为。驱动程序选项不区分大小写。
在 Microsoft Windows 中,您通常可以在配置数据来源名称 (DSN) 时设置驱动程序选项。您还能在以编程方式连接时,或者通过在 HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\
中添加或更改注册表项来设置驱动程序选项。有关配置 DSN 的更多信息,请参阅在 Microsoft Windows 上安装和配置 Amazon Redshift ODBC 驱动程序。your_DSN
在 Linux 中,您可以在 odbc.ini
和 amazon.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
-
默认值 – 无
-
数据类型 – 字符串
用于管理连接设置的身份验证配置文件。如果您设置此参数,则还必须设置 AccessKeyID 和 SecretAccessKey。
此参数为可选的。
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/Credentials
。AWS_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,则此参数是必需项。