如何使用 AWS CDK 开启 Babelfish

问题描述 投票:0回答:1

我通过 CDK 创建了一个包含一个读取器和一个写入器实例的 Aurora Serverless V2 集群。

现在我尝试通过添加参数组来为此集群启用 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 Consule UI 表示 Babelfish 已打开并正在侦听端口 1433。

但是当我尝试使用 MSSQL Server Management Studio 连接到数据库时,我收到以下错误消息: MS MSM Connect Error

这是 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

当我通过 AWS 管理控制台使用 Babelfish 手动创建 Aurora 数据库时,连接正常。

postgresql amazon-web-services amazon-rds babelfish
1个回答
0
投票

要连接 Babelfish 中的 TDS 端口,您必须使用创建实例时指定的主用户。当您通过 PG 端口创建 PG 用户时,您无法使用该用户连接到 TDS 端口(这是设计使然),并且您会收到您所描述的错误类型。在 TDS 中运行 CREATE LOGIN 时,这将在幕后创建一个新的 PG 用户,该用户将被允许用于连接到 TDA 端口。 最后,请注意,您必须在开始时创建一个启用 Babelfish 的集群:当您首先创建 PG 集群,然后尝试单独启用 Babelfish 时,这将不起作用(但不确定这是否是您正在做的事情)。

© www.soinside.com 2019 - 2024. All rights reserved.