Updated on 2025-11-20 GMT+08:00

Actions Supported by Policy-based Authorization

This section describes the actions supported by DDS in policy-based authorization.

Supported Actions

DDS provides system-defined policies that can be directly used in IAM. You can also create custom policies to supplement system-defined policies for more refined access control. Operations supported by policies are specific to APIs. The following are common concepts related to policies:

  • Permissions: statements in a policy that allow or deny certain operations
  • APIs: REST APIs that can be called by a user who has been granted specific permissions
  • Actions: specific operations that are allowed or denied in a custom policy
  • Dependencies: actions which a specific action depends on. When allowing an action for a user, you also need to allow any existing action dependencies for that user.
  • IAM projects/Enterprise projects: the authorization scope of a custom policy. A custom policy can be applied to IAM projects or enterprise projects or both. Policies that contain actions for both IAM and enterprise projects can be used and applied for both IAM and Enterprise Management. Policies that contain actions only for IAM projects can be used and applied to IAM only. Administrators can check whether an action supports IAM projects or enterprise projects in the action list. For details about the differences between IAM and enterprise management, see What Are the Differences Between IAM and Enterprise Management?

DDS supports the following actions in custom policies:

Table 1 DB instance management actions

Permission

API

Action

IAM Project

Enterprise Project

Creating a DB instance

POST /v3/{project_id}/instances

dds:instance:create

vpc:vpcs:list

vpc:vpcs:get

vpc:subnets:get

vpc:securityGroups:get

vpc:ports:get

√

√

Querying DB instances

GET /v3/{project_id}/instances?id={id}&name={name}&mode={mode}&datastore_type={datastore_type}&vpc_id={vpc_id}&subnet_id={subnet_id}&offset={offset}&limit={limit}

dds:instance:list

√

√

Deleting a DB instance

DELETE /v3/{project_id}/instances/{instance_id}

dds:instance:deleteInstance

√

√

Restarting a DB instance

POST /v3/{project_id}/instances/{instance_id}/restart

dds:instance:reboot

√

√

Scaling up storage space of a DB instance

POST /v3/{project_id}/instances/{instance_id}/enlarge-volume

dds:instance:extendVolume

√

√

Adding nodes for a cluster instance

POST /v3/{project_id}/instances/{instance_id}/enlarge

dds:instance:extendNode

vpc:vpcs:list

vpc:vpcs:get

vpc:subnets:get

vpc:securityGroups:get

vpc:ports:get

√

√

Changing the instance class

POST /v3/{project_id}/instances/{instance_id}/resize

dds:instance:modifySpec

√

√

Performing a primary/secondary switchover in a replica set instance

POST /v3/{project_id}/instances/{instance_id}/switchover

dds:instance:switchover

√

√

Enabling or disabling SSL

POST/v3/{project_id}/instances/{instance_id}/switch-ssl

dds:instance:modifySSL

√

√

Changing a DB instance name

PUT /v3/{project_id}/instances/{instance_id}/modify-name

dds:instance:modify

√

√

Changing a database port

POST /v3/{project_id}/instances/{instance_id}/modify-port

dds:instance:modifyPort

√

√

Changing a security group

POST /v3/{project_id}/instances/{instance_id}/modify-security-group

dds:instance:modifySecurityGroup

√

√

Binding an EIP

POST /v3/{project_id}/nodes/{node_id}/bind-eip

dds:instance:bindPublicIp

√

√

Unbinding an EIP

POST /v3/{project_id}/nodes/{node_id}/unbind-eip

dds:instance:unbindPublicIp

√

√

Changing the private IP address of a DB instance

POST /v3/{project_id}/instances/{instance_id}/modify-internal-ip

dds:instance:modifyVIP

√

√

Enabling shard or config IP address for a cluster instance

POST /v3/{project_id}/instances/{instance_id}/create-ip

dds:instance:createIp

√

√

Querying AZs to which an instance can be migrated

GET /v3/{project_id}/instances/{instance_id}/migrate/az

dds:instance:migrate

√

√

Migrating a DB instance to another AZ

POST /v3/{project_id}/instances/{instance_id}/migrate

dds:instance:migrate

√

√

Table 2 Connection management actions

Permission

API

Action

IAM Project

Enterprise Project

Querying sessions of an instance node

GET /v3/{project_id}/nodes/{node_id}/sessions

dds:instance:session

√

√

Killing sessions of an instance node

POST /v3/{project_id}/nodes/{node_id}/session

dds:instance:session

√

√

Querying the number of connections to an instance node

GET

/v3/{projectId}/instances/{instance_id}/conn-statistics

dds:instance:list

√

√

Table 3 Backup and restoration actions

Permission

API

Action

IAM Project

Enterprise Project

Creating a manual backup

POST /v3/{project_id}/backups

dds:instance:createManualBackup

√

√

Deleting a manual backup

DELETE /v3/{project_id}/backups/{backups_id}

dds:backup:delete

√

√

Querying backups

GET /v3/{project_id}/backups?instance_id={instance_id}&backup_id={backup_id}&backup_type={backup_type}&offset={offset}&limit={limit}&begin_time={begin_time}&end_time={end_time}&mode={mode}

dds:backup:list

√

√

Querying an automated backup policy

GET /v3/{project_id}/instances/{instance_id}/backups/policy

dds:instance:list

√

√

Configuring an automated backup policy

PUT /v3/{project_id}/instances/{instance_id}/backups/policy

dds:instance:modifyBackupPolicy

√

√

Restoring data to a new DB instance

POST /v3/{project_id}/instances

dds:instance:create

vpc:vpcs:list

vpc:vpcs:get

vpc:subnets:get

vpc:securityGroups:get

vpc:ports:get

√

√

Obtaining the link for downloading a backup

GET /v3/{projectId}/backups/download-file

dds:backup:download

√

√

Querying restoration time ranges

GET /v3/{project_id}/instances/{instance_id}/restore-time

dds:instance:list

√

√

Obtaining the list of databases that can be restored

GET

/v3/{project_id}/instances/{instance_id}/restore-database

dds:instance:list

√

√

Obtaining the list of database collections that can be restored

GET

/v3/{project_id}/instances/{instance_id}/restore-collection

dds:instance:list

√

√

Restoring data to the original DB instance

POST /v3/{project_id}/instances/recovery

dds:backup:refreshInstanceFromBackup

√

√

Restoring databases and tables to a point in time

POST /v3/{project_id}/instances/{instance_id}/restore/collections

dds:backup:refreshInstanceFromBackup

√

√

Table 4 Parameter configuration actions

Permission

API

Action

IAM Project

Enterprise Project

Obtaining parameter templates

GET

/v3/{project_id}/configurations

dds:param:list

√

√

Creating a parameter template

PUT

/v3/{project_id}/configurations

dds:param:create

√

√

Deleting a parameter template

DELETE

/v3/{project_id}/configurations/{config_id}

dds:param:delete

√

√

Obtaining details about a parameter template

GET

/v3/{projectId}/configurations/{configId}

dds:param:list

√

√

Modifying a parameter template

PUT

/v3/{project_id}/configurations/{config_id}

dds:param:modify

√

√

Applying a parameter template

PUT

/v3/{project_id}/configurations/{config_id}/apply

dds:instance:modifyParameter

√

√

Obtaining parameters of a specified DB instance

GET

/v3/{project_id}/instances/{instance_id}/configurations

dds:param:list

√

√

Modifying parameters of a specified DB instance

PUT

/v3/{project_id}/instances/{instance_id}/configurations

dds:instance:modifyParameter

√

√

Table 5 Log query actions

Permission

API

Action

IAM Project

Enterprise Project

Querying slow query logs of a DB instance

GET /v3/{project_id}/instances/{instance_id}/slowlog

dds:instance:list

√

√

Obtaining the link for downloading slow query logs

POST /v3/{project_id}/instances/{instance_id}/slowlog-download

dds:instance:list

√

√

Querying error logs of a DB instance

GET /v3/{project_id}/instances/{instance_id}/errorlog

dds:instance:list

√

√

Obtaining the link for downloading error logs

POST /v3/{project_id}/instances/{instance_id}/errorlog-download

dds:instance:list

√

√

Configuring an audit log policy

POST /v3/{project_id}/instances/{instance_id}/auditlog-policy

dds:instance:modifyAuditLogSwitch

√

√

Querying the audit log policy

GET /v3/{project_id}/instances/{instance_id}/auditlog-policy

dds:instance:list

√

√

Querying the audit log list

GET /v3/{project_id}/instances/{instance_id}/auditlog

dds:instance:list

√

√

Obtaining the link for downloading audit logs

POST /v3/{project_id}/instances/{instance_id}/auditlog-links

dds:instance:downloadAuditLog

√

√

Table 6 Tag management actions

Permission

API

Action

IAM Project

Enterprise Project

Adding or deleting resource tags in batches

POST /v3/{project_id}/instances/{instance_id}/tags/action

dds:instance:modify

√

√

Querying resource tags

GET /v3/{project_id}/instances/{instance_id}/tags

dds:instance:list

√

√

Table 7 Database and account management actions

Permission

API

Action

IAM Project

Enterprise Project

Creating a database user

POST /v3/{project_id}/instances/{instance_id}/db-user

dds:instance:createDatabaseUser

√

√

Creating a database role

POST /v3/{project_id}/instances/{instance_id}/db-role

dds:instance:createDatabaseRole

√

√

Deleting a database user

DELETE /v3/{project_id}/instances/{instance_id}/db-user

dds:instance:deleteDatabaseUser

√

√

Deleting a database role

DELETE /v3/{project_id}/instances/{instance_id}/db-role

dds:instance:deleteDatabaseRole

√

√

Changing the password of a database user

PUT

/v3/{project_id}/instances/{instance_id}/reset-password

dds:instance:resetPasswd

√

√

Querying database users

GET /v3/{project_id}/instances/{instance_id}/db-user/detail? offset ={offset}&limit={limit}&user_name={user_name }&db_name={db_name}

dds:instance:get

√

√

Querying database roles

GET /v3/{project_id}/instances/{instance_id}/db-roles?role_name={role_name}&db_name={db_name}&offset={offset}&limit={limit}

dds:instance:get

√

√

Querying and setting the cluster balancer

GET /v3/{project_id}/instances/{instance_id}/balancer

PUT /v3/{project_id}/instances/{instance_id}/balancer/{action}

PUT /v3/{project_id}/instances/{instance_id}/balancer/active-window

dds:instance:balancer

√

√

The check mark (√) indicates that the action takes effect. The cross mark (x) indicates that the action does not take effect.