Help Center/ GaussDB/ API Reference/ Permissions and Supported Actions/ Actions Supported by Policy-based Authorization
Updated on 2025-11-10 GMT+08:00

Actions Supported by Policy-based Authorization

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

Supported Actions

GaussDB 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
  • Dependent actions: actions which a specific action depends on. When allowing an action for a user, you also need to allow its dependent actions 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 take effect 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 Differences Between IAM and Enterprise Management.

GaussDB supports the following actions in custom policies:

Table 1 Instance management

Permission

API

Action

IAM Project

Enterprise Project

Creating a DB instance

POST /v3/{project_id}/instances

gaussdb:instance:create

gaussdb:param:list

Deleting a DB instance

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

gaussdb:instance:delete

Querying DB instances

GET /v3/{project_id}/instances

gaussdb:instance:list

Resetting a database password

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

gaussdb:instance:modifyPasswd

Changing a DB instance name

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

gaussdb:instance:rename

Rebooting a DB instance

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

gaussdb:instance:restart

Switching roles of the primary and standby DNs in shards

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

gaussdb:instance:switchShard

Querying the components of a DB instance

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

gaussdb:instance:list

Changing vCPUs and memory of a DB instance

PUT /v3/{project_id}/instance/{instance_id}/flavor

gaussdb:instance:modifySpec

Checking whether host load is unbalanced due to a primary/standby switchover

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

gaussdb:instance:list

Querying solution template settings

GET /v3/{project_id}/deployment-form

gaussdb:instance:list

Querying EIPs bound to DB instances

GET /v3/{project_id}/instances/{instance_id}/public-ips?offset={offset}&limit={limit}

gaussdb:instance:list

Binding or unbinding an EIP

POST /v3/{project_id}/instances/{instance_id}/nodes/{node_id}/public-ip

gaussdb:instance:bindPublicIp

Querying the SSL certificate download address of a DB instance

GET /v3/{project_id}/instances/{instance_id}/ssl-cert/download-link

gaussdb:instance:list

Querying the instance quotas of a tenant

GET /v3/{project_id}/project-quotas?type={type}

gaussdb:instance:list

Table 2 Parameter configuration

Permission

API

Action

IAM Project

Enterprise Project

Obtaining parameter templates

GET /v3/{project_id}/configurations?offset={offset}&limit={limit}

gaussdb:param:list

Obtaining parameters of a specified DB instance

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

gaussdb:param:list

Modifying parameters of a specified DB instance

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

gaussdb:param:modify

Creating a parameter template

POST /v3/{project_id}/configurations

gaussdb:param:create

Deleting a parameter template

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

gaussdb:param:delete

Querying details about a parameter template

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

gaussdb:instance:list

Replicating a parameter template

POST /v3/{project_id}/configurations/{config_id}/copy

gaussdb:param:create

Resetting a parameter template

POST /v3/{project_id}/configurations/{config_id}/reset

gaussdb:param:modify

Obtaining the differences of two parameter templates

POST /v3/{project_id}/configurations/comparison

gaussdb:param:list

Querying instances that a parameter template can be applied to

GET /v3/{project_id}/configurations/{config_id}/applicable-instances

gaussdb:instance:list

Checking whether a parameter template name is unique

GET /v3/{project_id}/configurations/name-validation?name={name}

gaussdb:instance:list

Applying a parameter template

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

gaussdb:param:apply

Querying application records of a parameter template

GET /v3/{project_id}/configurations/{config_id}/applied-histories

gaussdb:instance:list

Querying the change history of a parameter template

GET /v3/{project_id}/configurations/{config_id}/histories

gaussdb:param:list

Table 3 Backup management

Permission

API

Action

IAM Project

Enterprise Project

Configuring an automated backup policy

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

gaussdb:instance:modifyBackupPolicy

Querying an automated backup policy

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

gaussdb:backup:list

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}

gaussdb:backup:list

Creating a manual backup

POST /v3/{project_id}/backups

gaussdb:backup:create

Deleting a manual backup

DELETE /v3/{project_id}/backups/{backup_id}

gaussdb:backup:delete

Querying the restoration time range

GET /v3/{project_id}/instances/{instance_id}/restore-time?date={date}

gaussdb:backup:list

Restoring data to a new DB instance

POST /v3/{project_id}/instances

gaussdb:instance:create

Querying instances that can be used for backups and restorations

GET /v3/{project_id}/restorable-instances

gaussdb:instance:list

Querying the information of the original instance based on a specific point of time or a backup file

GET /v3/{project_id}/instance-snapshot?instance_id={instance_id}&backup_id={backup_id}&restore_time={restore_time}

gaussdb:instance:list

Table 4 DB engine versions and specifications

Permission

API

Action

IAM Project

Enterprise Project

Querying DB engine versions

GET /v3/{project_id}/datastore/versions

gaussdb:instance:list

Querying instance specifications

GET /v3/{project_id}/flavors?limit={limit}&offset={offset}&ha_mode={ha_mode}&version={version}&spec_code={spec_code}

gaussdb:instance:list

Querying DB engines

GET /v3/{project_id}/datastores

gaussdb:instance:list

Querying specifications that a DB instance can be changed to

GET /v3/{project_id}/instances/{instance_id}/available-flavors

gaussdb:instance:list

Table 5 Database and account management

Permission

API

Action

IAM Project

Enterprise Project

Creating a database

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

gaussdb:instance:createDatabase

Creating a database account

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

gaussdb:instance:createDatabaseUser

Creating a database schema

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

gaussdb:instance:createDatabaseSchema

Authorizing a database account

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

gaussdb:instance:grantDatabasePrivilege

Resetting a password for a database account

PUT /v3/{project_id}/instances/{instance_id}/db-user/password

gaussdb:instance:modifyDatabasePasswd

Querying databases

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

gaussdb:instance:list

Querying database users

GET /v3/{project_id}/instances/{instance_id}/db-users

gaussdb:instance:list

Querying database schemas

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

gaussdb:instance:list

Querying the database tables of a specified DB instance

GET /v3/{project_id}/instances/{instance_id}/tables?db_name={db_name}&schema_name={schema_name}

gaussdb:instance:list

Table 6 Tag management

Permission

API

Action

IAM Project

Enterprise Project

Querying tags of a specific instance

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

gaussdb:instance:list

Querying tags of a project

GET /v3/{project_id}/tags

gaussdb:instance:list

Querying predefined tags

GET /v3/{project_id}/predefined-tags

gaussdb:instance:list

Adding tags for a DB instance

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

gaussdb:instance:dealTag

Deleting instance tags in batches

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

gaussdb:instance:dealTag

gaussdb:tag:delete

Table 7 Storage management

Permission

API

Action

IAM Project

Enterprise Project

Querying the storage usage of a DB instance

GET /v3/{project_id}/instances/{instance_id}/volume-usage

gaussdb:instance:list

Querying the database disk type

GET /v3/{project_id}/storage-type?version={version}&ha_mode={ha_mode}

gaussdb:instance:list

Table 8 Quota management

Permission

API

Action

IAM Project

Enterprise Project

Modifying enterprise project quotas

PUT /v3/{project_id}/enterprise-projects/quotas

gaussdb:quota:modify

Querying enterprise project quotas

GET /v3/{project_id}/enterprise-projects/quotas

gaussdb:instance:list

Table 9 Task management

Permission

API

Action

IAM Project

Enterprise Project

Obtaining task information

GET /v3/{project_id}/jobs?id={id}

gaussdb:instance:list

Querying tasks

GET /v3/{project_id}/tasks

gaussdb:instance:list

Deleting a task record

DELETE /v3/{project_id}/jobs/{job_id}

gaussdb:instance:deleteTaskRecord

Table 10 Recycle bin

Permission

API

Action

IAM Project

Enterprise Project

Modifying the recycling policy

PUT /v3/{project_id}/recycle-policy

gaussdb:instance:setRecyclePolicy

Querying the recycling policy

GET /v3/{project_id}/recycle-policy

gaussdb:instance:list

Querying all DB engine instances in the recycle bin

GET /v3/{project_id}/recycle-instances

gaussdb:instance:list