
# 策略授权参考
本章节介绍GaussDB策略授权场景下支持的策略授权项。
#### 支持的授权项
策略包含系统策略和自定义策略，如果系统策略不满足授权要求，管理员可以创建自定义策略，并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应，授权项列表说明如下：
- 权限：允许或拒绝某项操作。
- 对应API接口：自定义策略实际调用的API接口。
- 授权项：自定义策略中支持的Action，在自定义策略中的Action中写入授权项，可以实现授权项对应的权限功能。
- 依赖的授权项：部分Action存在对其他Action的依赖，需要将依赖的Action同时写入授权项，才能实现对应的权限功能。
- IAM项目(Project)/企业项目(Enterprise Project)：自定义策略的授权范围，包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目，表示此授权项对应的自定义策略，可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目，不支持企业项目，表示仅能在IAM中给用户组授权并生效，如果在企业管理中授权，则该自定义策略不生效。管理员可以在授权项列表中查看授权项是否支持IAM项目或企业项目，"√"表示支持，"×"表示暂不支持。关于IAM项目与企业项目的区别，详情请参见：[IAM与企业管理的区别](https://support.huaweicloud.com/iam_faq/iam_01_0101.html)。
GaussDB的支持自定义策略授权项如下所示：
表1实例管理 
| 权限            | 对应API接口                                                                                | 授权项                                                                                                                     | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 创建数据库实例       | POST /v3/{project_id}/instances                                                        | gaussdb:instance:create gaussdb:param:list | √                                                                                                                                           | √                                                                                                                                  |
| 扩容数据库实例的磁盘空间  | POST /v3/{project_id}/instances/{instance_id}/action                                   | gaussdb:instance:modifySpec                                                                                             | √                                                                                                                                           | √                                                                                                                                  |
| 删除数据库实例       | DELETE /v3/{project_id}/instances/{instance_id}                                        | gaussdb:instance:delete                                                                                                 | √                                                                                                                                           | √                                                                                                                                  |
| 查询数据库实例列表     | GET /v3/{project_id}/instances                                                         | gaussdb:instance:list                                                                                                   | √                                                                                                                                           | √                                                                                                                                  |
| 重置数据库密码       | POST /v3/{project_id}/instances/{instance_id}/password                                 | gaussdb:instance:modifyPasswd                                                                                           | √                                                                                                                                           | √                                                                                                                                  |
| 修改实例名称        | PUT /v3/{project_id}/instances/{instance_id}/name                                      | gaussdb:instance:rename                                                                                                 | √                                                                                                                                           | √                                                                                                                                  |
| 重启数据库实例       | POST /v3/{project_id}/instances/{instance_id}/restart                                  | gaussdb:instance:restart                                                                                                | √                                                                                                                                           | √                                                                                                                                  |
| 分片节点主备切换      | POST /v3/{project_id}/instances/{instance_id}/switch-shard                             | gaussdb:instance:switchShard                                                                                            | √                                                                                                                                           | √                                                                                                                                  |
| 查询实例的组件列表     | GET /v3/{project_id}/instances/{instance_id}/components                                | gaussdb:instance:list                                                                                                   | √                                                                                                                                           | √                                                                                                                                  |
| 规格变更          | PUT /v3/{project_id}/instance/{instance_id}/flavor                                     | gaussdb:instance:modifySpec                                                                                             | √                                                                                                                                           | √                                                                                                                                  |
| 查询实例主备平衡状态    | GET /v3/{project_id}/instances/{instance_id}/balance                                   | gaussdb:instance:list                                                                                                   | √                                                                                                                                           | √                                                                                                                                  |
| 查询解决方案模板配置    | GET /v3/{project_id}/deployment-form                                                   | gaussdb:instance:list                                                                                                   | √                                                                                                                                           | √                                                                                                                                  |
| 查询已绑定的EIP列表   | GET /v3/{project_id}/instances/{instance_id}/public-ips?offset={offset}\&limit={limit} | gaussdb:instance:list                                                                                                   | √                                                                                                                                           | √                                                                                                                                  |
| 绑定/解绑弹性公网IP   | POST /v3/{project_id}/instances/{instance_id}/nodes/{node_id}/public-ip                | gaussdb:instance:bindPublicIp                                                                                           | √                                                                                                                                           | √                                                                                                                                  |
| 查询实例SSL证书下载地址 | GET /v3/{project_id}/instances/{instance_id}/ssl-cert/download-link                    | gaussdb:instance:list                                                                                                   | √                                                                                                                                           | √                                                                                                                                  |
| 查询租户的实例配额     | GET /v3/{project_id}/project-quotas?type={type}                                        | gaussdb:instance:list                                                                                                   | √                                                                                                                                           | √                                                                                                                                  |
   
表2参数配置 
| 权限             | 对应API接口                                                              | 授权项                   | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 获取参数模板列表       | GET /v3/{project_id}/configurations?offset={offset}\&limit={limit}   | gaussdb:param:list    | √                                                                                            | √                                                                                                     |
| 获取指定实例的参数      | GET /v3/{project_id}/instances/{instance_id}/configurations          | gaussdb:param:list    | √                                                                                            | √                                                                                                     |
| 修改指定实例的参数      | PUT /v3/{project_id}/instances/{instance_id}/configurations          | gaussdb:param:modify  | √                                                                                            | √                                                                                                     |
| 创建参数模板         | POST /v3/{project_id}/configurations                                 | gaussdb:param:create  | √                                                                                            | √                                                                                                     |
| 删除参数模板         | DELETE /v3/{project_id}/configurations/{config_id}                   | gaussdb:param:delete  | √                                                                                            | √                                                                                                     |
| 查询参数模板详情       | GET /v3/{project_id}/configurations/{config_id}                      | gaussdb:instance:list | √                                                                                            | √                                                                                                     |
| 复制参数模板         | POST /v3/{project_id}/configurations/{config_id}/copy                | gaussdb:param:create  | √                                                                                            | √                                                                                                     |
| 重置参数组          | POST /v3/{project_id}/configurations/{config_id}/reset               | gaussdb:param:modify  | √                                                                                            | √                                                                                                     |
| 比较两个参数组模板之间的差异 | POST /v3/{project_id}/configurations/comparison                      | gaussdb:param:list    | √                                                                                            | √                                                                                                     |
| 查询可应用实例列表      | GET /v3/{project_id}/configurations/{config_id}/applicable-instances | gaussdb:instance:list | √                                                                                            | √                                                                                                     |
| 校验参数组名称是否存在    | GET /v3/{project_id}/configurations/name-validation?name={name}      | gaussdb:instance:list | √                                                                                            | √                                                                                                     |
| 应用参数模板         | PUT /v3/{project_id}/configurations/{config_id}/apply                | gaussdb:param:apply   | √                                                                                            | √                                                                                                     |
| 查询参数模板的应用记录    | GET /v3/{project_id}/configurations/{config_id}/applied-histories    | gaussdb:instance:list | √                                                                                            | √                                                                                                     |
| 查询参数模板的修改历史    | GET /v3/{project_id}/configurations/{config_id}/histories            | gaussdb:param:list    | √                                                                                            | √                                                                                                     |
   
表3备份管理 
| 权限                 | 对应API接口                                                                                                                                                                                | 授权项                                 | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 设置自动备份策略           | PUT /v3/{project_id}/instances/{instance_id}/backups/policy                                                                                                                            | gaussdb:instance:modifyBackupPolicy | √                                                                                            | √                                                                                                      |
| 查询自动备份策略           | GET /v3/{project_id}/instances/{instance_id}/backups/policy                                                                                                                            | gaussdb:backup:list                 | √                                                                                            | √                                                                                                      |
| 查询备份列表             | 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                 | √                                                                                            | √                                                                                                      |
| 创建手动备份             | POST /v3/{project_id}/backups                                                                                                                                                          | gaussdb:backup:create               | √                                                                                            | √                                                                                                      |
| 删除手动备份             | DELETE /v3/{project_id}/backups/{backup_id}                                                                                                                                            | gaussdb:backup:delete               | √                                                                                            | √                                                                                                      |
| 查询可恢复时间段           | GET /v3/{project_id}/instances/{instance_id}/restore-time?date={date}                                                                                                                  | gaussdb:backup:list                 | √                                                                                            | √                                                                                                      |
| 恢复到新实例             | POST /v3/{project_id}/instances                                                                                                                                                        | gaussdb:instance:create             | √                                                                                            | √                                                                                                      |
| 查询可用于备份恢复的实例列表     | GET /v3/{project_id}/restorable-instances                                                                                                                                              | gaussdb:instance:list               | √                                                                                            | √                                                                                                      |
| 根据时间点或者备份文件查询原实例信息 | GET /v3/{project_id}/instance-snapshot?instance_id={instance_id}\&backup_id={backup_id}\&restore_time={restore_time}                                                                   | gaussdb:instance:list               | √                                                                                            | √                                                                                                      |
   
表4引擎版本和规格 
| 权限         | 对应API接口                                                                                                                  | 授权项                   | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 查询数据库引擎的版本 | GET /v3/{project_id}/datastore/versions                                                                                  | gaussdb:instance:list | √                                                                                           | √                                                                                                      |
| 查询数据库规格    | GET /v3/{project_id}/flavors?limit={limit}\&offset={offset}\&ha_mode={ha_mode}\&version={version}\&spec_code={spec_code} | gaussdb:instance:list | √                                                                                           | √                                                                                                      |
| 查询引擎列表     | GET /v3/{project_id}/datastores                                                                                          | gaussdb:instance:list | √                                                                                           | √                                                                                                      |
| 查询实例可变更规格  | GET /v3/{project_id}/instances/{instance_id}/available-flavors                                                           | gaussdb:instance:list | √                                                                                           | √                                                                                                      |
   
表5管理数据库和用户 
| 权限            | 对应API接口                                                                                          | 授权项                                     | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 创建数据库         | POST /v3/{project_id}/instances/{instance_id}/database                                           | gaussdb:instance:createDatabase         | √                                                                                           | √                                                                                                      |
| 创建数据库用户       | POST /v3/{project_id}/instances/{instance_id}/db-user                                            | gaussdb:instance:createDatabaseUser     | √                                                                                           | √                                                                                                      |
| 创建数据库SCHEMA   | POST /v3/{project_id}/instances/{instance_id}/schema                                             | gaussdb:instance:createDatabaseSchema   | √                                                                                           | √                                                                                                      |
| 授权数据库账号       | POST /v3/{project_id}/instances/{instance_id}/db-privilege                                       | gaussdb:instance:grantDatabasePrivilege | √                                                                                           | √                                                                                                      |
| 重置数据库账号密码     | PUT /v3/{project_id}/instances/{instance_id}/db-user/password                                    | gaussdb:instance:modifyDatabasePasswd   | √                                                                                           | √                                                                                                      |
| 查询数据库列表       | GET /v3/{project_id}/instances/{instance_id}/databases                                           | gaussdb:instance:list                   | √                                                                                           | √                                                                                                      |
| 查询数据库用户列表     | GET /v3/{project_id}/instances/{instance_id}/db-users                                            | gaussdb:instance:list                   | √                                                                                           | √                                                                                                      |
| 查询数据库SCHEMA列表 | GET /v3/{project_id}/instances/{instance_id}/schemas                                             | gaussdb:instance:list                   | √                                                                                           | √                                                                                                      |
| 查询指定实例的数据库表列表 | GET /v3/{project_id}/instances/{instance_id}/tables?db_name={db_name}\&schema_name={schema_name} | gaussdb:instance:list                   | √                                                                                           | √                                                                                                      |
   
表6标签管理 
| 权限       | 对应API接口                                              | 授权项                                                                                                                    | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 查询实例标签   | GET /v3/{project_id}/instances/{instance_id}/tags    | gaussdb:instance:list                                                                                                  | √                                                                                           | √                                                                                                     |
| 查询项目标签   | GET /v3/{project_id}/tags                            | gaussdb:instance:list                                                                                                  | √                                                                                           | √                                                                                                     |
| 查询预定义标签  | GET /v3/{project_id}/predefined-tags                 | gaussdb:instance:list                                                                                                  | √                                                                                           | √                                                                                                     |
| 添加实例标签   | POST /v3/{project_id}/instances/{instance_id}/tags   | gaussdb:instance:dealTag                                                                                               | √                                                                                           | √                                                                                                     |
| 批量删除实例标签 | DELETE /v3/{project_id}/instances/{instance_id}/tags | gaussdb:instance:dealTag gaussdb:tag:delete | √                                                                                           | √                                                                                                     |
   
表7磁盘管理 
| 权限           | 对应API接口                                                                | 授权项                   | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 查询实例存储空间使用信息 | GET /v3/{project_id}/instances/{instance_id}/volume-usage              | gaussdb:instance:list | √                                                                                           | √                                                                                                   |
| 查询数据库磁盘类型    | GET /v3/{project_id}/storage-type?version={version}\&ha_mode={ha_mode} | gaussdb:instance:list | √                                                                                           | √                                                                                                   |
   
表8配额管理 
| 权限        | 对应API接口                                         | 授权项                   | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 修改企业项目配额  | PUT /v3/{project_id}/enterprise-projects/quotas | gaussdb:quota:modify  | √                                                                                          | √                                                                                                   |
| 查询企业项目配额组 | GET /v3/{project_id}/enterprise-projects/quotas | gaussdb:instance:list | √                                                                                          | √                                                                                                   |
   
表9任务管理 
| 权限     | 对应API接口                               | 授权项                               | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 获取任务信息 | GET /v3/{project_id}/jobs?id={id}     | gaussdb:instance:list             | √                                                                                           | √                                                                                                     |
| 查询任务列表 | GET /v3/{project_id}/tasks            | gaussdb:instance:list             | √                                                                                           | √                                                                                                     |
| 删除任务记录 | DELETE /v3/{project_id}/jobs/{job_id} | gaussdb:instance:deleteTaskRecord | √                                                                                           | √                                                                                                     |
   
表10回收站 
| 权限            | 对应API接口                                | 授权项                               | IAM项目 (Project) | 企业项目 (Enterprise Project) |
|:---|:---|:---|:---|:---|
| 设置回收站策略       | PUT /v3/{project_id}/recycle-policy    | gaussdb:instance:setRecyclePolicy | √                                                                                          | √                                                                                                     |
| 查看回收站策略       | GET /v3/{project_id}/recycle-policy    | gaussdb:instance:list             | √                                                                                          | √                                                                                                     |
| 查询回收站所有引擎实例列表 | GET /v3/{project_id}/recycle-instances | gaussdb:instance:list             | √                                                                                          | √                                                                                                     |
   
