You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AWS CDK启用Aurora Babelfish后SSMS连接失败问题排查

问题描述

通过AWS CDK创建Aurora Serverless V2(Aurora Postgres 15.2)集群,添加参数组启用Babelfish:

const auroraParameterGroup = new rds.ParameterGroup(this, "AuroraParameterGroup", {
  engine: rds.DatabaseClusterEngine.auroraPostgres({
    version: rds.AuroraPostgresEngineVersion.VER_15_2
  }),
  parameters: {
    "rds.babelfish_status": "on"
  }
})

AWS RDS控制台显示Babelfish已开启并监听1433端口,但使用Microsoft SQL Server Management Studio(SSMS)连接时失败。手动通过控制台创建的带Babelfish的Aurora集群可正常连接。完整CDK代码如下:

const auroraCluster = new rds.DatabaseCluster(this, 'AuroraCluster', {
  parameterGroup: auroraParameterGroup,
  engine: rds.DatabaseClusterEngine.auroraPostgres({
    version: rds.AuroraPostgresEngineVersion.VER_15_2
  }),
  storageEncryptionKey: rdsKey,
  instances: 2,
  credentials: rds.Credentials.fromSecret(auroraCredentials),
  instanceProps: {
    enablePerformanceInsights: true,
    publiclyAccessible: true,
    vpc: props.vpc,
    vpcSubnets: props.vpc.selectSubnets({ subnetGroupName: props.databaseSubnetGroupName }),
    instanceType: new InstanceType('serverless'),
  },
});

auroraCluster.connections.allowFromAnyIpv4(aws_ec2.Port.tcp(5432))
auroraCluster.connections.allowFromAnyIpv4(aws_ec2.Port.tcp(1433)) //babelfish
解决方案

1. 手动完成Babelfish初始化

CDK创建集群时,仅开启rds.babelfish_status参数不会自动完成Babelfish初始化(控制台创建会自动执行该流程),需手动操作:

  • 使用psql连接Postgres集群的写入端点,执行SQL检查初始化状态:
    SELECT * FROM sys.babelfish_version;
    
  • 若返回报错,执行初始化命令:
    EXEC sp_babelfish_configure 'babelfishpg_tsql.database_name', 'master';
    
  • 执行完成后,重启Aurora集群实例。

2. 补充参数组关键配置

修改CDK参数组,添加Babelfish必要配置,确保监听范围和默认数据库正确:

const auroraParameterGroup = new rds.ParameterGroup(this, "AuroraParameterGroup", {
  engine: rds.DatabaseClusterEngine.auroraPostgres({
    version: rds.AuroraPostgresEngineVersion.VER_15_2
  }),
  parameters: {
    "rds.babelfish_status": "on",
    "babelfishpg_tsql.listen_addresses": "*", // 允许所有地址访问Babelfish
    "babelfishpg_tsql.database_name": "master" // 指定Babelfish默认数据库
  }
})

部署更新后的CDK栈,并重启集群实例使参数生效。

3. 修正SSMS连接参数

确保SSMS使用正确的连接配置:

  • 服务器名称:使用Aurora集群的写入端点(而非单个实例端点)
  • 端口:1433
  • 身份验证:选择「SQL Server身份验证」,使用Postgres超级用户(如postgres)及对应密码
  • 数据库:填写master(Babelfish的默认数据库,非Postgres原生的postgres数据库)
  • 加密连接:勾选该选项(Aurora默认强制SSL连接)

4. 确认网络配置

  • 验证安全组入站规则已正确放行1433端口到你的客户端IP(代码中allowFromAnyIpv4已设置,可手动确认规则是否生效)
  • 检查VPC网络ACL是否允许1433端口的双向流量
  • 确认集群publiclyAccessible属性已设为true(代码中已配置)

内容的提问来源于stack exchange,提问作者Vincent Elbracht

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 23:34:53