将 Amazon RDS for SQL Server 数据库实例与 Amazon S3 集成 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

将 Amazon RDS for SQL Server 数据库实例与 Amazon S3 集成

您可以在运行 Amazon RDS for SQL Server 的数据库实例和 Amazon S3 存储桶之间传输文件。通过执行此操作,您可以结合使用 Amazon S3 和 SQL Server 功能,例如批量插入。例如,您可以将 .csv、.xml、.txt 和其他文件从 Amazon S3 下载到数据库实例主机,并将数据从 D:\S3\ 导入到数据库中。所有文件都存储在数据库实例上的 D:\S3\ 中。

适用以下限制:

  • 在多可用区实例上进行故障转移后,将在备用副本上删除 D:\S3 文件夹中的文件。有关更多信息,请参阅 S3 集成的多可用区限制

  • 数据库实例和 S3 存储桶必须位于同一 Amazon 区域。

  • 如果您一次运行多个 S3 集成任务,则这些任务将按顺序运行,而不是并行运行。

    注意

    S3 集成任务与本机备份和还原任务共享相同的队列。在此队列中,任何时候最多只能有两个正在进行的任务。因此,两个正在运行的本机备份和还原任务将阻止所有 S3 集成任务。

  • 您必须在已还原的实例上重新启用 S3 集成功能。S3 集成不会从源实例传播到已还原的实例。D:\S3 中的文件在还原的实例上被删除。

  • 下载到数据库实例的文件数不能超过 100 个。换句话说,D:\S3\ 中的文件数不能超过 100 个。

  • 仅支持下载无文件扩展名或具有以下文件扩展名的文件:.abf、.asdatabase、.bcp、configsettings、.csv、.dat、.deploymentoptions、.deploymenttargets、.fmt、.info、.ispac、.lst、.tbl、.txt、.xml 和 .xmla。

  • S3 存储桶必须与相关 Amazon Identity and Access Management (IAM) 角色具有同一所有者。因此,不支持跨账户 S3 集成。

  • S3 存储桶不能向公众开放。

  • 从 RDS 上传到 S3 的文件大小限制为每个文件 50 GB。

  • 从 S3 下载到 RDS 的文件大小限制为 S3 支持的最大文件大小。

有关使用 Amazon S3 中的文件的更多信息,请参阅 Amazon Simple Storage Service 入门

将 RDS for SQL Server 与 S3 集成的先决条件

在开始之前,请找到或创建要使用的 S3 存储桶。另外,添加权限,以便 RDS 数据库实例可以访问 S3 存储桶。要配置此访问权限,请同时创建 IAM 策略和 IAM 角色。

创建用于访问 Amazon S3 的 IAM 策略

  1. IAM 管理控制台中,选择导航窗格中的策略

  2. 创建新策略,并使用 Visual editor (可视化编辑器) 选项卡执行以下步骤。

  3. 对于 Service (服务),输入 S3,然后选择 S3 服务。

  4. 对于操作,选择以下各项以授予数据库实例所需的访问权限:

    • ListAllMyBuckets – 必需

    • ListBucket – 必需

    • GetBucketACL – 必需

    • GetBucketLocation – 必需

    • GetObject – 将文件从 S3 下载到 所必需D:\S3\

    • PutObject – 将文件从 D:\S3\ 上传到 S3 所必需

    • ListMultipartUploadParts – 将文件从 D:\S3\ 上传到 S3 所必需

    • AbortMultipartUpload – 将文件从 D:\S3\ 上传到 S3 所必需

  5. 对于 Resources (资源),显示的选项取决于您在上一步中选择的操作。您可能会看到针对 bucket (存储桶) 和/或 object (对象) 的选项。对于其中的每一个,添加适当的 Amazon Resource Name (ARN)。

    对于 bucket (存储桶),为要使用的存储桶添加 ARN。例如,如果您的存储桶名为 example-bucket,请将 ARN 设置为 arn:aws:s3:::example-bucket

    对于 object (对象),为存储桶输入 ARN,然后选择以下各项之一:

    • 要授予对指定存储桶中所有文件的访问权限,请为 Bucket name (存储桶名称)Object name (对象名称) 选择 Any (任何)

    • 要授予对存储桶中特定文件或文件夹的访问权限,请提供您希望 SQL Server 访问的特定存储桶和对象的 ARN。

  6. 按照控制台中的说明进行操作,直到您完成策略创建。

    前面是设置策略的简要指南。有关创建 IAM 策略的更多详细说明,请参阅 IAM 用户指南中的 创建 IAM 策略

创建使用上一过程中的 IAM 策略的 IAM 角色

  1. IAM 管理控制台中,选择导航窗格中的角色

  2. 创建新的 IAM 角色,然后选择控制台中显示的以下选项:

    • Amazon 服务

    • RDS

    • RDS – Add Role to Database (将角色添加到数据库

    然后选择底部的 Next:Permissions (下一步: 权限)

  3. 对于 Attach permissions policies (附加权限策略),输入您之前创建的 IAM 策略的名称。然后,从列表中选择该策略。

  4. 按照控制台中的说明进行操作,直到您完成角色创建。

    前面是设置角色的简要指南。如果您需要有关创建角色的更多详细说明,请参阅 IAM 用户指南中的 IAM 角色

要授予 Amazon RDS 对 Amazon S3 存储桶的访问权限,请使用以下过程:

  1. 创建向 Amazon RDS 授予对 S3 存储桶的访问权限的 IAM 策略。

  2. 创建一个让 Amazon RDS 可代表您访问 S3 存储桶的 IAM 角色。

    有关更多信息,请参阅 IAM 用户指南中的创建向 IAM 用户委派权限的角色

  3. 将您创建的 IAM 策略附加到您创建的 IAM 角色。

创建 IAM 策略

包括适当的操作以授予数据库实例所需的访问权限:

  • ListAllMyBuckets – 必需

  • ListBucket – 必需

  • GetBucketACL – 必需

  • GetBucketLocation – 必需

  • GetObject – 将文件从 S3 下载到 所必需D:\S3\

  • PutObject – 将文件从 D:\S3\ 上传到 S3 所必需

  • ListMultipartUploadParts – 将文件从 D:\S3\ 上传到 S3 所必需

  • AbortMultipartUpload – 将文件从 D:\S3\ 上传到 S3 所必需

  1. 以下 Amazon CLI 命令使用这些选项创建一个名为 rds-s3-integration-policy 的 IAM 策略。它授予访问名为 bucket_name 的存储桶的权限。

    对于 Linux、macOS 或 Unix:

    aws iam create-policy \ --policy-name rds-s3-integration-policy \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketACL", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::bucket_name" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::bucket_name/key_prefix/*" } ] }'

    对于 Windows:

    确保将行尾更改为您的界面支持的行尾(^ 而不是 \)。另外,在 Windows 中,您必须使用 \ 来转义所有双引号。为了避免需要转义 JSON 中的引号,您可以将其保存到文件中并将该文件作为参数传入。

    首先,创建包含以下权限策略的 policy.json 文件:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketACL", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::bucket_name" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::bucket_name/key_prefix/*" } ] }

    然后使用以下命令创建策略:

    aws iam create-policy ^ --policy-name rds-s3-integration-policy ^ --policy-document file://file_path/assume_role_policy.json
  2. 创建策略之后,请记下策略的 Amazon Resource Name (ARN)。后续步骤需要该 ARN。

创建 IAM 角色

  • 以下 Amazon CLI 命令创建 rds-s3-integration-role IAM 角色来实现此目的。

    对于 Linux、macOS 或 Unix:

    aws iam create-role \ --role-name rds-s3-integration-role \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'

    对于 Windows:

    确保将行尾更改为您的界面支持的行尾(^ 而不是 \)。另外,在 Windows 中,您必须使用 \ 来转义所有双引号。为了避免需要转义 JSON 中的引号,您可以将其保存到文件中并将该文件作为参数传入。

    首先,创建包含以下策略的 assume_role_policy.json 文件:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

    然后使用以下命令创建 IAM 角色:

    aws iam create-role ^ --role-name rds-s3-integration-role ^ --assume-role-policy-document file://file_path/assume_role_policy.json

    例 使用全局条件上下文键创建 IAM 角色

    我们建议在基于资源的策略中使用 aws:SourceArnaws:SourceAccount 全局条件上下文键,以此限制服务对特定资源的权限。这是防范混淆代理问题最有效的方法。

    您可以使用这两个全局条件上下文键并让 aws:SourceArn 值包含账户 ID。在这种情况下,当 aws:SourceAccount 值和 aws:SourceArn 值中的账户使用相同策略语句时,确保二者使用相同的账户 ID。

    • 如果您想对单个资源进行跨服务访问,请使用 aws:SourceArn

    • 如果您想允许该账户中的任何资源与跨服务使用操作相关联,请使用 aws:SourceAccount

    在此策略中,请务必使用 aws:SourceArn 全局条件上下文键和访问角色资源的完整 Amazon Resource Name (ARN)。对于 S3 集成,请确保包含数据库实例 ARN,如以下示例所示。

    对于 Linux、macOS 或 Unix:

    aws iam create-role \ --role-name rds-s3-integration-role \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" "Condition": { "StringEquals": { "aws:SourceArn":"arn:aws:rds:Region:my_account_ID:db:db_instance_identifier" } } } ] }'

    对于 Windows:

    将全局条件上下文键添加至 assume_role_policy.json

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole" "Condition": { "StringEquals": { "aws:SourceArn":"arn:aws:rds:Region:my_account_ID:db:db_instance_identifier" } } } ] }

将 IAM 策略附加到 IAM 角色

  • 以下 Amazon CLI 命令将策略附加到名为 rds-s3-integration-role 的角色。将 your-policy-arn 替换为您在上一步中记下的策略 ARN。

    对于 Linux、macOS 或 Unix:

    aws iam attach-role-policy \ --policy-arn your-policy-arn \ --role-name rds-s3-integration-role

    对于 Windows:

    aws iam attach-role-policy ^ --policy-arn your-policy-arn ^ --role-name rds-s3-integration-role

启用 RDS for SQL Server 与 S3 的集成

在以下部分中,您可以找到如何启用 Amazon S3 与 Amazon RDS for SQL Server 的集成。要使用 S3 集成,您的数据库实例必须与您先前创建的 IAM 角色相关联,然后才能使用 S3_INTEGRATION feature-name 参数。

注意

要将 IAM 角色添加到数据库实例,数据库实例的状态必须为 available

将您的 IAM 角色与数据库实例关联

  1. 登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 选择 RDS for SQL Server 数据库实例名称以显示其详细信息。

  3. Connectivity & security (连接性和安全性) 选项卡上的 Manage IAM roles (管理 IAM 角色) 部分中,为 Add IAM roles to this instance (向此实例添加 IAM 角色) 选择要添加的 IAM 角色。

  4. 对于 Feature (功能),选择 S3_INTEGRATION

    
								添加 S3_INTEGRATION 角色
  5. 选择 Add role (添加角色)

将 IAM 角色添加到 RDS for SQL Server 数据库实例

  • 以下 Amazon CLI 命令将您的 IAM 角色添加到名为 mydbinstance 的 RDS for SQL Server 数据库实例中。

    对于 Linux、macOS 或 Unix:

    aws rds add-role-to-db-instance \ --db-instance-identifier mydbinstance \ --feature-name S3_INTEGRATION \ --role-arn your-role-arn

    对于 Windows:

    aws rds add-role-to-db-instance ^ --db-instance-identifier mydbinstance ^ --feature-name S3_INTEGRATION ^ --role-arn your-role-arn

    your-role-arn 替换为您在上一步中记下的角色 ARN。必须为 S3_INTEGRATION 选项指定 --feature-name

在 RDS for SQL Server 和 Amazon S3 之间传输文件

您可以使用 Amazon RDS 存储过程在 Amazon S3 和 RDS 数据库实例之间下载和上传文件。您还可以使用 Amazon RDS 存储过程来列出和删除 RDS 实例上的文件。

您从 S3 下载和上传到 S3 的文件存储在 D:\S3 文件夹中。这是可用于访问文件的唯一文件夹。您可以将文件组织到子文件夹中,这些子文件夹是您在下载过程中包含目标文件夹时为您创建的。

某些存储过程要求您向 &S3 存储桶和文件提供 Amazon Resource Name (ARN)。您的 ARN 的格式为 arn:aws:s3:::bucket_name/file_name。Amazon S3 不需要在 ARN 中使用账号或Amazon区域。

S3 集成任务按顺序运行,并且与本机备份和还原任务共用同一队列。在此队列中,任何时候最多只能有两个正在进行的任务。任务可能需要长达五分钟时间才能开始处理。

将文件从 Amazon S3 存储桶下载到 SQL Server 数据库实例

要将文件从 S3 存储桶下载到 RDS for SQL Server 数据库实例,请使用具有以下参数的 Amazon RDS 存储过程 msdb.dbo.rds_download_from_s3

参数名称 数据类型 默认值 必需 描述

@s3_arn_of_file

NVARCHAR

必需

要下载的文件的 S3 ARN,例如:arn:aws:s3:::bucket_name/mydata.csv

@rds_file_path

NVARCHAR

可选

RDS 实例的文件路径。如果未指定,则文件路径为 D:\S3\<filename in s3>。RDS 支持绝对路径和相对路径。如果要创建子文件夹,请将其包含在文件路径中。

@overwrite_file

INT

0

可选

覆盖现有文件:

0 = 不覆盖

1 = 覆盖

您可以下载不带文件扩展名的文件和具有以下文件扩展名的文件:.bcp、.csv、.dat、.fmt、.info、.lst、.tbl、.txt 和 .xml。

注意

启用 SQL Server Integration Services 时,支持下载具有 .ispac 文件扩展名的文件。有关启用 SSIS 的更多信息,请参阅SQL Server Integration Services

启用 SQL Server Analysis Services 时,支持下载具有以下文件扩展名的文件:.abf、.asdatabase、.configsettings、.deploymentoptions、.deploymenttargets 和 .xmla。有关启用 SSAS 的更多信息,请参阅SQL Server Analysis Services

以下示例显示了从 S3 下载文件的存储过程。

exec msdb.dbo.rds_download_from_s3 @s3_arn_of_file='arn:aws:s3:::bucket_name/bulk_data.csv', @rds_file_path='D:\S3\seed_data\data.csv', @overwrite_file=1;

示例 rds_download_from_s3 操作在 seed_data 中创建一个名为 D:\S3\ 的文件夹(如果该文件夹尚不存在)。然后,该示例将源文件 bulk_data.csv 从 S3 下载到数据库实例上名为 data.csv 的新文件。如果以前存在此文件,则会覆盖它,因为 @overwrite_file 参数设置为 1

将文件从 SQL Server 数据库实例上传到 Amazon S3 存储桶

要将文件从 RDS for SQL Server 数据库实例上传到 S3 存储桶,请使用具有以下参数的 Amazon RDS 存储过程 msdb.dbo.rds_upload_to_s3

参数名称 数据类型 默认值 必需 描述

@s3_arn_of_file

NVARCHAR

必需

要在 S3 中创建的文件的 S3 ARN,例如:arn:aws:s3:::bucket_name/mydata.csv

@rds_file_path

NVARCHAR

必需

要上传到 S3 的文件的文件路径。支持绝对路径和相对路径。

@overwrite_file

INT

可选

覆盖现有文件:

0 = 不覆盖

1 = 覆盖

以下示例将名为 data.csv 的文件从 D:\S3\seed_data\ 中的指定位置上传到 ARN 指定的 S3 存储桶中的 new_data.csv 文件。

exec msdb.dbo.rds_upload_to_s3 @rds_file_path='D:\S3\seed_data\data.csv', @s3_arn_of_file='arn:aws:s3:::bucket_name/new_data.csv', @overwrite_file=1;

如果 S3 中以前存在此文件,则会覆盖它,因为 @overwrite_file 参数设置为 1

列出 RDS 数据库实例上的文件

要列出数据库实例上可用的文件,请同时使用存储过程和函数。首先,运行以下存储过程来从 D:\S3\ 中的文件收集文件详细信息。

exec msdb.dbo.rds_gather_file_details;

此存储过程返回任务的 ID。像其他任务一样,此存储过程异步运行。一旦任务的状态为 SUCCESS,您就可以在 rds_fn_list_file_details 函数中使用任务 ID 来列出 D:\S3\ 中的现有文件和目录,如下所示。

SELECT * FROM msdb.dbo.rds_fn_list_file_details(TASK_ID);

rds_fn_list_file_details 函数将返回具有以下列的表格。

输出参数 描述
filepath 文件的绝对路径(例如,D:\S3\mydata.csv
size_in_bytes 文件大小(以字节为单位)
last_modified_utc 上次修改日期和时间(采用 UTC 格式)
is_directory 指示项目是否为目录的选项 (true/false)

删除 RDS 数据库实例上的文件

要删除数据库实例上可用的文件,请使用具有以下参数的 Amazon RDS 存储过程 msdb.dbo.rds_delete_from_filesystem

参数名称 数据类型 默认值 必需 描述

@rds_file_path

NVARCHAR

必需

要删除的文件的文件路径。支持绝对路径和相对路径。

@force_delete

INT

0

可选

要删除目录,必须包含此标志并将其设置为 1

1 = 删除目录

如果要删除文件,则忽略此参数。

要删除目录,@rds_file_path 必须以反斜杠 (\) 结尾,并且 @force_delete 必须设置为 1

以下示例将删除 D:\S3\delete_me.txt 文件。

exec msdb.dbo.rds_delete_from_filesystem @rds_file_path='D:\S3\delete_me.txt';

以下示例将删除 D:\S3\example_folder\ 目录。

exec msdb.dbo.rds_delete_from_filesystem @rds_file_path='D:\S3\example_folder\', @force_delete=1;

监控文件传输任务的状态

要跟踪 S3 集成任务的状态,请调用 rds_fn_task_status 函数。它获取两个参数。第一个参数应该始终为 NULL,因为它不适用于 S3 集成。第二个参数接受任务 ID。

要查看所有任务的列表,请将第一个参数设置为 NULL,将第二个参数设置为 0,如以下示例所示。

SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,0);

要获取特定任务,请将第一个参数设置为 NULL,将第二个参数设置为任务 ID,如以下示例所示。

SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,42);

rds_fn_task_status 函数将返回以下信息。

输出参数

描述

task_id

任务的 ID。

task_type

对于 S3 集成,任务可以具有以下任务类型:

  • DOWNLOAD_FROM_S3

  • UPLOAD_TO_S3

  • LIST_FILES_ON_DISK

  • DELETE_FILES_ON_DISK

database_name

不适用于 S3 集成任务。

% complete

用百分比表示的任务进度。

duration(mins)

在任务上花费的时间 (以分钟为单位)。

lifecycle

任务的状态。有以下可能状态:

  • CREATED – 调用 S3 集成存储过程之一后,将创建一个任务并将状态设置为 CREATED

  • IN_PROGRESS – 任务开始后,状态将设置为 IN_PROGRESS。要将状态从 CREATED 更改为 IN_PROGRESS 可能需要最多 5 分钟的时间。

  • SUCCESS – 任务完成后,状态将设置为 SUCCESS

  • ERROR – 如果任务失败,状态将设置为 ERROR。有关错误的更多信息,请参阅 task_info 列。

  • CANCEL_REQUESTED – 调用 rds_cancel_task 后,任务的状态将设置为 CANCEL_REQUESTED

  • CANCELLED – 在成功取消任务后,任务的状态将设置为 CANCELLED

task_info

有关任务的其他信息。如果在处理过程中发生错误,则此列包含有关错误的信息。

last_updated

上次更新任务状态的日期和时间。

created_at

任务的创建日期和时间。

S3_object_arn

从中下载或上传到其中的 S3 对象的 ARN。

overwrite_S3_backup_file

不适用于 S3 集成任务。

KMS_master_key_arn

不适用于 S3 集成任务。

filepath

RDS 数据库实例上的文件路径。

overwrite_file

指示是否覆盖现有文件的选项。

task_metadata

不适用于 S3 集成任务。

取消任务

要取消 S3 集成任务,请使用带有 msdb.dbo.rds_cancel_task 参数的 task_id 存储过程。无法取消正在进行的删除和列出任务。以下示例显示了取消任务的请求。

exec msdb.dbo.rds_cancel_task @task_id = 1234;

要获取所有任务及其任务 ID 的概述,请使用rds_fn_task_status中介绍的 监控文件传输任务的状态 函数。

S3 集成的多可用区限制

在多可用区实例上,故障转移之后将删除备用副本上 D:\S3 文件夹中的文件。故障转移可以是预先计划的,例如在数据库实例修改(如更改实例类或升级引擎版本)期间。或者,故障转移可能是未计划的,在主实例停机时进行。

注意

我们不建议将 D:\S3 文件夹用于文件存储。最佳做法是将创建的文件上传到 Amazon S3 以使其持久,并在需要导入数据时下载文件。

要确定上次故障转移时间,您可以使用 msdb.dbo.rds_failover_time 存储过程。有关更多信息,请参阅 确定上次故障转移时间

例 最近无故障转移示例

此示例显示错误日志中最近没有故障转移的输出。自 2020-04-29 23:59:00.01 以来,没有发生故障转移。

因此,在该时间之后下载的所有文件,如未使用 rds_delete_from_filesystem 存储过程删除,则仍可在当前主机上访问。在该时间之前下载的文件可能也可用。

errorlog_available_from recent_failover_time

2020-04-29 23:59:00.0100000

null

例 最近故障转移示例

此示例显示错误日志中最近有故障转移的输出。最近一次故障转移的时间是在 2020-05-05 18:57:51.89。

在该时间之后下载的所有文件,如未使用 rds_delete_from_filesystem 存储过程删除,则仍可在当前主机上访问。

errorlog_available_from recent_failover_time

2020-04-29 23:59:00.0100000

2020-05-05 18:57:51.8900000

禁用 RDS for SQL Server 与 S3 的集成

在下面,您可以找到如何禁用 Amazon S3 与 Amazon RDS for SQL Server 的集成。禁用 S3 集成时,不会删除 D:\S3\ 中的文件。

注意

要从数据库实例中删除 IAM 角色,数据库实例的状态必须为 available

从数据库实例中取消关联您的 IAM 角色

  1. 登录Amazon Web Services Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 选择 RDS for SQL Server 数据库实例名称以显示其详细信息。

  3. Connectivity & security (连接性和安全性) 选项卡上的 Manage IAM roles (管理 IAM 角色) 部分中,选择要删除的 IAM 角色。

  4. 选择 Delete

从 RDS for SQL Server 数据库实例中删除 IAM 角色

  • 以下 Amazon CLI 命令从名为 mydbinstance 的 RDS for SQL Server 数据库实例中删除 IAM 角色。

    对于 Linux、macOS 或 Unix:

    aws rds remove-role-from-db-instance \ --db-instance-identifier mydbinstance \ --feature-name S3_INTEGRATION \ --role-arn your-role-arn

    对于 Windows:

    aws rds remove-role-from-db-instance ^ --db-instance-identifier mydbinstance ^ --feature-name S3_INTEGRATION ^ --role-arn your-role-arn

    使用 your-role-arn 选项的适当 IAM 角色 ARN 替换 --feature-name