modifyTenantDatabase method
Modifies an existing tenant database in a DB instance. You can change the tenant database name or the master user password. This operation is supported only for RDS for Oracle CDB instances using the multi-tenant configuration.
May throw DBInstanceNotFoundFault.
May throw InvalidDBInstanceStateFault.
May throw KMSKeyNotAccessibleFault.
May throw TenantDatabaseAlreadyExistsFault.
May throw TenantDatabaseNotFoundFault.
Parameter dBInstanceIdentifier :
The identifier of the DB instance that contains the tenant database that
you are modifying. This parameter isn't case-sensitive.
Constraints:
- Must match the identifier of an existing DB instance.
Parameter tenantDBName :
The user-supplied name of the tenant database that you want to modify.
This parameter isn’t case-sensitive.
Constraints:
- Must match the identifier of an existing tenant database.
Parameter manageMasterUserPassword :
Specifies whether to manage the master user password with Amazon Web
Services Secrets Manager.
If the tenant database doesn't manage the master user password with Amazon
Web Services Secrets Manager, you can turn on this management. In this
case, you can't specify MasterUserPassword.
If the tenant database already manages the master user password with
Amazon Web Services Secrets Manager, and you specify that the master user
password is not managed with Amazon Web Services Secrets Manager, then you
must specify MasterUserPassword. In this case, Amazon RDS
deletes the secret and uses the new password for the master user specified
by MasterUserPassword.
For more information, see Password management with Amazon Web Services Secrets Manager in the Amazon RDS User Guide.
Constraints:
-
Can't manage the master user password with Amazon Web Services Secrets
Manager if
MasterUserPasswordis specified.
Parameter masterUserPassword :
The new password for the master user of the specified tenant database in
your DB instance.
Constraints:
-
Can include any printable ASCII character except
/,"(double quote),@,&(ampersand), and'(single quote).
- Must contain between 8 and 30 characters.
Parameter masterUserSecretKmsKeyId :
The Amazon Web Services KMS key identifier to encrypt a secret that is
automatically generated and managed in Amazon Web Services Secrets
Manager.
This setting is valid only if both of the following conditions are met:
-
The tenant database doesn't manage the master user password in Amazon Web
Services Secrets Manager.
If the tenant database already manages the master user password in Amazon Web Services Secrets Manager, you can't change the KMS key used to encrypt the secret.
-
You're turning on
ManageMasterUserPasswordto manage the master user password in Amazon Web Services Secrets Manager.If you're turning on
ManageMasterUserPasswordand don't specifyMasterUserSecretKmsKeyId, then theaws/secretsmanagerKMS key is used to encrypt the secret. If the secret is in a different Amazon Web Services account, then you can't use theaws/secretsmanagerKMS key to encrypt the secret, and you must use a self-managed KMS key.
- Key ARN
- Key ID
- Alias ARN
- Alias name for the KMS key
A default KMS key exists for your Amazon Web Services account. Your Amazon Web Services account has a different default KMS key for each Amazon Web Services Region.
Parameter newTenantDBName :
The new name of the tenant database when renaming a tenant database. This
parameter isn’t case-sensitive.
Constraints:
- Can't be the string null or any other reserved word.
- Can't be longer than 8 characters.
Parameter rotateMasterUserPassword :
Specifies whether to rotate the secret managed by Amazon Web Services
Secrets Manager for the master user password.
This setting is valid only if the master user password is managed by RDS in Amazon Web Services Secrets Manager for the DB instance. The secret value contains the updated password.
For more information, see Password management with Amazon Web Services Secrets Manager in the Amazon RDS User Guide.
Constraints:
- You must apply the change immediately when rotating the master user password.
Implementation
Future<ModifyTenantDatabaseResult> modifyTenantDatabase({
required String dBInstanceIdentifier,
required String tenantDBName,
bool? manageMasterUserPassword,
String? masterUserPassword,
String? masterUserSecretKmsKeyId,
String? newTenantDBName,
bool? rotateMasterUserPassword,
}) async {
final $request = <String, String>{
'DBInstanceIdentifier': dBInstanceIdentifier,
'TenantDBName': tenantDBName,
if (manageMasterUserPassword != null)
'ManageMasterUserPassword': manageMasterUserPassword.toString(),
if (masterUserPassword != null) 'MasterUserPassword': masterUserPassword,
if (masterUserSecretKmsKeyId != null)
'MasterUserSecretKmsKeyId': masterUserSecretKmsKeyId,
if (newTenantDBName != null) 'NewTenantDBName': newTenantDBName,
if (rotateMasterUserPassword != null)
'RotateMasterUserPassword': rotateMasterUserPassword.toString(),
};
final $result = await _protocol.send(
$request,
action: 'ModifyTenantDatabase',
version: '2014-10-31',
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
resultWrapper: 'ModifyTenantDatabaseResult',
);
return ModifyTenantDatabaseResult.fromXml($result);
}