Skip to content

Latest version of AWS provider 6.43.0 resource aws_db_instance not honoring character_set_name for Microsoft SQL RDS #47757

@vinayaksakharkar

Description

@vinayaksakharkar

Terraform and AWS Provider Version

- Installing hashicorp/aws v6.43.0...
- Installed hashicorp/aws v6.43.0 (signed by HashiCorp)

Terraform v1.13.4

Affected Resource(s) or Data Source(s)

aws_db_instance

Expected Behavior

I am passing character_set_name = Latin1_General_BIN

Actual Behavior

It creating with SQL_Latin1_General_CP1_CI_AS . We tried directly from console everything works fine. Additional information I am trying to create developer edition of RDS with custom CVE

Relevant Error/Panic Output

  + resource "aws_db_instance" "db" {
      + address                               = (known after apply)
      + allocated_storage                     = 700
      + allow_major_version_upgrade           = false
      + apply_immediately                     = true
      + arn                                   = (known after apply)
      + auto_minor_version_upgrade            = true
      + availability_zone                     = (known after apply)
      + backup_retention_period               = 30
      + backup_target                         = (known after apply)
      + backup_window                         = "02:00-03:00"
      + ca_cert_identifier                    = (known after apply)
      + character_set_name                    = (known after apply)
      + copy_tags_to_snapshot                 = false
      + database_insights_mode                = (known after apply)
      + db_name                               = (known after apply)
      + db_subnet_group_name                  = "dev-vpc"
      + dedicated_log_volume                  = false
      + delete_automated_backups              = true
      + deletion_protection                   = false
      + domain                                = "intentional deleted"
      + domain_fqdn                           = (known after apply)
      + domain_iam_role_name                  = "intentional deleted"
      + enabled_cloudwatch_logs_exports       = [
          + "agent",
          + "error",
        ]
      + endpoint                              = (known after apply)
      + engine                                = "sqlserver-dev-ee"
      + engine_lifecycle_support              = (known after apply)
      + engine_version                        = "16.00.4215.2.<intentional deleted>-developer-edition-cu21"
      + engine_version_actual                 = (known after apply)
      + final_snapshot_identifier             = "intentional deleted"
      + hosted_zone_id                        = (known after apply)
      + id                                    = (known after apply)
      + identifier                            = "intentional deleted"
      + identifier_prefix                     = (known after apply)
      + instance_class                        = "db.r6i.2xlarge"
      + iops                                  = 8000
      + kms_key_id                            = "intentional deleted"
      + latest_restorable_time                = (known after apply)
      + license_model                         = "bring-your-own-license"
      + listener_endpoint                     = (known after apply)
      + maintenance_window                    = "sun:03:30-sun:04:30"
      + master_user_secret                    = (known after apply)
      + master_user_secret_kms_key_id         = (known after apply)
      + max_allocated_storage                 = 900
      + monitoring_interval                   = 60
      + monitoring_role_arn                   = "intentional deleted"
      + multi_az                              = false
      + nchar_character_set_name              = (known after apply)
      + network_type                          = (known after apply)
      + option_group_name                     = "intentional deleted"
      + parameter_group_name                  = "intentional deleted"
      + password                              = (sensitive value)
      + password_wo                           = (write-only attribute)
      + performance_insights_enabled          = true
      + performance_insights_kms_key_id       = "intentional deleted"
      + performance_insights_retention_period = 7
      + port                                  = 1433
      + publicly_accessible                   = false
      + region                                = "us-east-1"
      + replica_mode                          = (known after apply)
      + replicas                              = (known after apply)
      + resource_id                           = (known after apply)
      + skip_final_snapshot                   = false
      + snapshot_identifier                   = (known after apply)
      + status                                = (known after apply)
      + storage_encrypted                     = true
      + storage_throughput                    = 500
      + storage_type                          = "gp3"
      + tags                                  = {
               intentional deleted
        }
      + tags_all                              = (known after apply)
      + timezone                              = (known after apply)
      + upgrade_rollout_order                 = (known after apply)
      + username                              = "intentional deleted"
      + vpc_security_group_ids                = [
          + "intentional deleted",
          + "intentional deleted",
        ]
      + timeouts {
          + create = "2h"
          + delete = "2h"
        }
    }

Sample Terraform Configuration

Click to expand configuration
  + resource "aws_db_instance" "db" {
      + address                               = (known after apply)
      + allocated_storage                     = 700
      + allow_major_version_upgrade           = false
      + apply_immediately                     = true
      + arn                                   = (known after apply)
      + auto_minor_version_upgrade            = true
      + availability_zone                     = (known after apply)
      + backup_retention_period               = 30
      + backup_target                         = (known after apply)
      + backup_window                         = "02:00-03:00"
      + ca_cert_identifier                    = (known after apply)
      + character_set_name                    = (known after apply)
      + copy_tags_to_snapshot                 = false
      + database_insights_mode                = (known after apply)
      + db_name                               = (known after apply)
      + db_subnet_group_name                  = "dev-vpc"
      + dedicated_log_volume                  = false
      + delete_automated_backups              = true
      + deletion_protection                   = false
      + domain                                = "intentional deleted"
      + domain_fqdn                           = (known after apply)
      + domain_iam_role_name                  = "intentional deleted"
      + enabled_cloudwatch_logs_exports       = [
          + "agent",
          + "error",
        ]
      + endpoint                              = (known after apply)
      + engine                                = "sqlserver-dev-ee"
      + engine_lifecycle_support              = (known after apply)
      + engine_version                        = "16.00.4215.2.<intentional deleted>-developer-edition-cu21"
      + engine_version_actual                 = (known after apply)
      + final_snapshot_identifier             = "intentional deleted"
      + hosted_zone_id                        = (known after apply)
      + id                                    = (known after apply)
      + identifier                            = "intentional deleted"
      + identifier_prefix                     = (known after apply)
      + instance_class                        = "db.r6i.2xlarge"
      + iops                                  = 8000
      + kms_key_id                            = "intentional deleted"
      + latest_restorable_time                = (known after apply)
      + license_model                         = "bring-your-own-license"
      + listener_endpoint                     = (known after apply)
      + maintenance_window                    = "sun:03:30-sun:04:30"
      + master_user_secret                    = (known after apply)
      + master_user_secret_kms_key_id         = (known after apply)
      + max_allocated_storage                 = 900
      + monitoring_interval                   = 60
      + monitoring_role_arn                   = "intentional deleted"
      + multi_az                              = false
      + nchar_character_set_name              = (known after apply)
      + network_type                          = (known after apply)
      + option_group_name                     = "intentional deleted"
      + parameter_group_name                  = "intentional deleted"
      + password                              = (sensitive value)
      + password_wo                           = (write-only attribute)
      + performance_insights_enabled          = true
      + performance_insights_kms_key_id       = "intentional deleted"
      + performance_insights_retention_period = 7
      + port                                  = 1433
      + publicly_accessible                   = false
      + region                                = "us-east-1"
      + replica_mode                          = (known after apply)
      + replicas                              = (known after apply)
      + resource_id                           = (known after apply)
      + skip_final_snapshot                   = false
      + snapshot_identifier                   = (known after apply)
      + status                                = (known after apply)
      + storage_encrypted                     = true
      + storage_throughput                    = 500
      + storage_type                          = "gp3"
      + tags                                  = {
               intentional deleted
        }
      + tags_all                              = (known after apply)
      + timezone                              = (known after apply)
      + upgrade_rollout_order                 = (known after apply)
      + username                              = "intentional deleted"
      + vpc_security_group_ids                = [
          + "intentional deleted",
          + "intentional deleted",
        ]
      + timeouts {
          + create = "2h"
          + delete = "2h"
        }
    }

Steps to Reproduce

below is the terraform plan for RDS Microsoft SQL RDS developer edition

  + resource "aws_db_instance" "db" {
      + address                               = (known after apply)
      + allocated_storage                     = 700
      + allow_major_version_upgrade           = false
      + apply_immediately                     = true
      + arn                                   = (known after apply)
      + auto_minor_version_upgrade            = true
      + availability_zone                     = (known after apply)
      + backup_retention_period               = 30
      + backup_target                         = (known after apply)
      + backup_window                         = "02:00-03:00"
      + ca_cert_identifier                    = (known after apply)
      + character_set_name                    = (known after apply)
      + copy_tags_to_snapshot                 = false
      + database_insights_mode                = (known after apply)
      + db_name                               = (known after apply)
      + db_subnet_group_name                  = "dev-vpc"
      + dedicated_log_volume                  = false
      + delete_automated_backups              = true
      + deletion_protection                   = false
      + domain                                = "intentional deleted"
      + domain_fqdn                           = (known after apply)
      + domain_iam_role_name                  = "intentional deleted"
      + enabled_cloudwatch_logs_exports       = [
          + "agent",
          + "error",
        ]
      + endpoint                              = (known after apply)
      + engine                                = "sqlserver-dev-ee"
      + engine_lifecycle_support              = (known after apply)
      + engine_version                        = "16.00.4215.2.<intentional deleted>-developer-edition-cu21"
      + engine_version_actual                 = (known after apply)
      + final_snapshot_identifier             = "intentional deleted"
      + hosted_zone_id                        = (known after apply)
      + id                                    = (known after apply)
      + identifier                            = "intentional deleted"
      + identifier_prefix                     = (known after apply)
      + instance_class                        = "db.r6i.2xlarge"
      + iops                                  = 8000
      + kms_key_id                            = "intentional deleted"
      + latest_restorable_time                = (known after apply)
      + license_model                         = "bring-your-own-license"
      + listener_endpoint                     = (known after apply)
      + maintenance_window                    = "sun:03:30-sun:04:30"
      + master_user_secret                    = (known after apply)
      + master_user_secret_kms_key_id         = (known after apply)
      + max_allocated_storage                 = 900
      + monitoring_interval                   = 60
      + monitoring_role_arn                   = "intentional deleted"
      + multi_az                              = false
      + nchar_character_set_name              = (known after apply)
      + network_type                          = (known after apply)
      + option_group_name                     = "intentional deleted"
      + parameter_group_name                  = "intentional deleted"
      + password                              = (sensitive value)
      + password_wo                           = (write-only attribute)
      + performance_insights_enabled          = true
      + performance_insights_kms_key_id       = "intentional deleted"
      + performance_insights_retention_period = 7
      + port                                  = 1433
      + publicly_accessible                   = false
      + region                                = "us-east-1"
      + replica_mode                          = (known after apply)
      + replicas                              = (known after apply)
      + resource_id                           = (known after apply)
      + skip_final_snapshot                   = false
      + snapshot_identifier                   = (known after apply)
      + status                                = (known after apply)
      + storage_encrypted                     = true
      + storage_throughput                    = 500
      + storage_type                          = "gp3"
      + tags                                  = {
               intentional deleted
        }
      + tags_all                              = (known after apply)
      + timezone                              = (known after apply)
      + upgrade_rollout_order                 = (known after apply)
      + username                              = "intentional deleted"
      + vpc_security_group_ids                = [
          + "intentional deleted",
          + "intentional deleted",
        ]
      + timeouts {
          + create = "2h"
          + delete = "2h"
        }
    }

Debug Logging

Click to expand log output

GenAI / LLM Assisted Development

n/a

Important Facts and References

No response

Would you like to implement a fix?

No

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugAddresses a defect in current functionality.needs-triageWaiting for first response or review from a maintainer.service/rdsIssues and PRs that pertain to the rds service.waiting-responseMaintainers are waiting on response from community or contributor.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions