计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive

文档数据库服务 DDS

更新时间:2025-02-24 GMT+08:00

Organizations服务中的服务控制策略(Service Control Policy,以下简称SCP)可以使用以下授权项元素设置访问控制策略。

SCP不直接进行授权,只划定权限边界。将SCP绑定到组织单元或者成员账号时,并没有直接对组织单元或成员账号授予操作权限,而是规定了成员账号或组织单元包含的成员账号的授权范围。

本章节介绍组织服务中SCP使用的元素,这些元素包含了操作(Action)、资源(Resource)和条件(Condition)。

如何使用这些元素编辑SCP自定义策略,请参考创建SCP

操作(Action)

操作(Action)即为SCP中支持的授权项。

  • “访问级别”列描述如何对操作进行分类(list、read和write等)。此分类可帮助您了解在SCP中相应操作对应的访问级别。
  • “资源类型”列指每个操作是否支持资源级权限。
    • 资源类型支持通配符号*表示所有。如果此列没有值(-),则必须在SCP语句的Resource元素中指定所有资源类型(“*”)。
    • 如果该列包含资源类型,则必须在具有该操作的语句中指定该资源的URN。
    • 资源类型列中必需资源在表中用星号(*)标识,表示使用此操作必须指定该资源类型。

    关于DDS定义的资源类型的详细信息请参见资源类型(Resource)

  • “条件键”列包括了可以在SCP语句的Condition元素中支持指定的键值。
    • 如果该授权项资源类型列存在值,则表示条件键仅对列举的资源类型生效。
    • 如果该授权项资源类型列没有值(-),则表示条件键对整个授权项生效。
    • 如果此列条件键没有值(-),表示此操作不支持指定条件键。

    关于DDS定义的条件键的详细信息请参见条件(Condition)

您可以在SCP语句的Action元素中指定以下DDS的相关操作。

表1 DDS支持的授权项

授权项

描述

访问级别

资源类型(*为必须)

条件键

dds:instance:setSsl

授予切换SSL开关的权限。

permission_management

instance

-

dds:instance:unbindEIP

授予解绑弹性公网IP的权限。

write

-

-

dds:instance:migrateAz

授予实例迁移可用区的权限。

write

-

-

dds:instance:listMigrateAz

授予查询实例可迁移的可用区列表的权限。

list

-

-

dds:instance:updateIp

授予修改内网IP地址的权限。

write

instance

-

dds:instance:bindEIP

授予绑定弹性公网IP的权限。

write

-

-

dds:instance:resetPassword

授予重置数据库用户密码的权限。

write

instance

-

dds:instance:checkPassword

授予检查数据库密码的权限。

read

instance

-

dds:instance:updatePort

授予修改数据库端口的权限。

write

instance

-

dds:backup:download

授予下载备份文件的权限。

read

instance

-

dds:instance:setAuditLogPolicy

授予设置审计日志策略的权限。

permission_management

instance

-

dds:instance:getAuditLogPolicy

授予查看审计日志策略的权限。

list

instance

-

dds:instance:listAuditLog

授予查看审计日志的权限。

list

instance

-

dds:instance:listSlowLog

授予查看慢日志的权限。

list

instance

-

dds:instance:downloadSlowLog

授予下载慢日志的权限。

read

instance

-

dds:instance:listErrorLog

授予查看错误日志的权限。

list

instance

-

dds:instance:downloadErrorLog

授予下载错误日志的权限。

read

instance

-

dds:configuration:delete

授予删除参数组的权限。

write

-

g:EnterpriseProjectId

dds:configuration:update

授予修改参数组中参数值的权限。

write

-

g:EnterpriseProjectId

dds:backup:listAll

授予查询备份列表的权限。

list

-

-

dds:instance:updateConfiguration

授予修改实例或实例节点的参数组配置的权限。

write

instance

-

dds:instance:applyConfiguration

授予应用参数配置到实例或实例节点的权限。

write

-

-

dds:instance:createIp

授予创建IP的权限。

write

-

-

dds:backup:delete

授予删除备份的权限。

write

-

-

dds:instance:updateSecurityGroup

授予变更实例安全组的权限。

write

instance

-

dds:configuration:listAll

授予查询参数组列表的权限。

list

-

g:EnterpriseProjectId

dds:instance:getConfiguration

授予查询实例参数配置的权限。

read

instance

-

dds:configuration:get

授予查询参数配置详情的权限。

read

-

g:EnterpriseProjectId

dds:instance:updateSpec

授予变更实例规格的权限。

write

instance

-

dds:instance:getSecondLevelMonitoringConfig

授予查询秒级监控配置的权限。

read

instance

-

dds:instance:setSecondLevelMonitoringConfig

授予开启秒级监控的权限。

write

instance

-

dds:instance:switchover

授予切换主备节点的权限。

write

instance

-

dds:instance:extendVolume

授予扩容实例存储容量的权限。

write

instance

-

dds:instance:listAll

授予查询数据库实例列表的权限。

list

-

-

dds:instance:setRecyclePolicy

授予设置实例回收备份策略的权限。

write

-

-

dds:instance:getRecyclePolicy

授予查看实例回收备份策略的权限。

read

-

-

dds:instance:listRecycleInstances

授予查询回收站实例列表的权限。

list

-

-

dds:instance:getUpgradeDuration

授予查询数据库补丁升级预估时长的权限。

read

instance

-

dds:instance:getDiskUsage

授予查询磁盘使用率的权限。

read

instance

-

dds:configuration:listAppliedHistory

授予查询参数模板被应用历史的权限。

list

-

-

dds:configuration:listUpdatedHistory

授予查询参数模板修改历史的权限。

list

-

-

dds:configuration:compare

授予比较两个参数模板之间差异的权限。

read

-

-

dds:configuration:copy

授予复制参数模板的权限。

write

-

-

dds:configuration:reset

授予重置参数模板的权限。

write

-

-

dds:instance:getSslCertDownloadAddress

授予获取下载ssl证书地址的权限。

read

instance

-

dds:instance:addNode

授予扩容实例节点数量的权限。

write

instance

-

dds:instance:deleteEnlargeFailedNode

授予删除扩容失败的实例节点的权限。

write

instance

-

dds:task:listAll

授予查询任务列表的权限。

list

-

-

dds:task:getDetail

授予查询任务详情的权限。

read

-

-

dds:instance:restart

授予重启数据库实例的权限。

write

instance

-

dds:instance:deleteAuditLog

授予删除审计日志的权限。

write

instance

-

dds:instance:delete

授予删除数据库实例的权限。

write

instance

-

dds:instance:updateName

授予修改实例名称的权限。

write

instance

-

dds:instance:updateRemark

授予修改实例备注的权限。

write

instance

-

dds:instance:setTag

授予批量添加或删除指定实例标签的权限。

tagging

instance

-

dds:instance:listTags

授予查询指定实例的标签信息的权限。

read

-

-

dds:instance:setBackupPolicy

授予设置自动备份策略的权限。

write

-

dds:BackupEnabled

dds:instance:getBackupPolicy

授予查询自动备份策略的权限。

read

-

-

dds:configuration:create

授予创建参数组的权限。

write

-

g:EnterpriseProjectId

dds:instance:setSlowLogPlaintextStatus

授予切换慢日志明文显示开关的权限。

permission_management

instance

-

dds:instance:getSlowLogPlaintextStatus

授予查看慢日志明文开关状态的权限。

read

instance

-

dds:instance:downloadAuditLog

授予下载审计日志的权限。

read

instance

-

dds:instance:create

授予创建数据库实例的权限。

write

-

dds:Encrypted

dds:BackupEnabled

dds:instance:restore

授予备份恢复原实例的权限。

write

-

-

dds:backup:getRestoreTimeList

授予查询实例可恢复时间段的权限。

read

-

-

dds:backup:getRestoreCollections

授予获取可恢复的数据库集合列表的权限。

list

-

-

dds:backup:getRestoreDatabases

授予获取可恢复的数据库列表的权限。

list

-

-

dds:instance:getConnectionStatistics

授予查询实例连接数统计信息的权限。

read

instance

-

dds:instance:getQuotas

授予查询配额的权限。

read

-

-

dds:instance:createDatabaseUser

授予创建数据库用户的权限。

write

instance

-

dds:instance:getDatabaseUser

授予查询数据库用户列表的权限。

read

instance

-

dds:instance:deleteDatabaseUser

授予删除数据库用户的权限。

write

instance

-

dds:instance:createDatabaseRole

授予创建数据库角色的权限。

write

instance

-

dds:instance:deleteDatabaseRole

授予删除数据库角色的权限。

write

instance

-

dds:instance:getDatabaseRole

授予查询数据库角色列表的权限。

read

instance

-

dds:instance:setSourceSubnet

授予网段配置的权限。

write

instance

-

dds:instance:upgradeDatabaseVersion

授予升级数据库版本的权限。

write

instance

-

dds:backup:create

授予创建数据库实例手动备份的权限。

write

-

-

dds:instance:deleteSession

授予删除节点会话的权限。

write

-

-

dds:instance:listSession

授予查询节点会话列表的权限。

list

-

-

dds:instance:getShardingBalancer

授予查询集群实例负载均衡的权限。

read

instance

-

dds:instance:setShardingBalancer

授予设置集群实例负载均衡的权限。

write

instance

-

dds:instance:setBalancerWindow

授予设置集群均衡活动时间窗的权限。

write

instance

-

dds:instance:updateOpsWindow

授予设置实例可维护时间窗的权限。

write

instance

-

dds:instance:listFlavors

授予查询规格列表的权限。

read

-

-

dds:instance:listStorageType

授予查询数据库磁盘类型的权限。

read

-

-

dds:instance:listDatabaseVersion

授予查询数据库版本信息的权限。

read

-

-

dds:tag:listAll

授予查询项目下所有标签信息的权限。

list

-

-

dds:instance:reduceNode

授予缩容集群实例的节点数量的权限。

write

instance

-

dds:instance:createDomainName

授予创建DNS的权限。

write

-

-

dds:instance:updateDomainName

授予修改DNS名称的权限。

write

-

-

dds:instance:updateReplicaSetName

授予修改数据库复制集名称的权限。

write

instance

-

dds:instance:getDetail

授予查询实例详情的权限。

read

instance

-

dds:instance:getNodeList

授予查询实例节点列表的权限。

read

instance

-

dds:instance:updateTag

授予修改实例标签的权限。

tagging

instance

-

dds:instance:deleteTag

授予删除实例标签的权限。

tagging

instance

-

dds:backup:get

授予查询备份信息的权限。

read

-

-

dds:offsiteBackup:listRegion

授予获取指定实例异地备份区域的权限。

read

-

-

dds:offsiteBackup:listInstance

授予获取异地备份实例的权限。

read

-

-

dds:offsiteBackup:listAll

授予获取异地备份列表的权限。

read

-

-

dds:instance:saveLogConfig

授予批量保存日志配置的权限。

write

-

-

dds:instance:deleteLogConfig

授予批量删除日志配置的权限。

write

-

-

DDS的API通常对应着一个或多个授权项。表2展示了API与授权项的关系,以及该API需要依赖的授权项。

表2 API与授权项的关系

API

对应的授权项

依赖的授权项

POST /v3/{project_id}/instances

dds:instance:create

vpc:vpcs:list

vpc:vpcs:get

vpc:subnets:get

vpc:securityGroups:get

vpc:ports:get

-

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:listAll

-

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

dds:instance:delete

-

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

dds:instance:restart

-

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

dds:instance:extendVolume

-

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

dds:instance:addNode

vpc:vpcs:list

vpc:vpcs:get

vpc:subnets:get

vpc:securityGroups:get

vpc:ports:get

-

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

dds:instance:updateSpec

-

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

dds:instance:switchover

-

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

dds:instance:setSSL

-

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

dds:instance:updateName

-

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

dds:instance:updatePort

-

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

dds:instance:updateSecurityGroup

-

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

dds:instance:bindEIP

-

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

dds:instance:unbindEIP

-

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

dds:instance:updateIp

-

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

dds:instance:createIp

-

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

dds:instance:listMigrateAz

-

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

dds:instance:migrateAz

-

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

dds:instance:lisSession

-

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

dds:instance:deleteSession

-

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

dds:instance:getConnectionStatistics

-

POST /v3/{project_id}/backups

dds:backup:create

-

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

dds:backup:delete

-

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:listAll

-

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

dds:instance:getBackupPolicy

-

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

dds:instance:setBackupPolicy

-

POST /v3/{project_id}/instances

dds:instance:create

vpc:vpcs:list

vpc:vpcs:get

vpc:subnets:get

vpc:securityGroups:get

vpc:ports:get

-

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

dds:backup:download

-

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

dds:backup:getRestoreTimeList

-

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

dds:backup:getRestoreDatabases

-

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

dds:backup:getRestoreCollections

-

POST /v3/{project_id}/instances/recovery

dds:backup:restore

-

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

dds:backup:restore

-

GET /v3/{project_id}/configurations

dds:configuration:listAll

-

PUT /v3/{project_id}/configurations

dds:configuration:create

-

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

dds:configuration:delete

-

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

dds:configuration:get

-

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

dds:configuration:update

-

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

dds:instance:applyConfiguration

-

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

dds:instance:getConfiguration

-

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

dds:instance:updateConfiguration

-

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

dds:instance:listSlowLog

-

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

dds:instance:downloadSlowLog

-

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

dds:instance:listErrorLog

-

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

dds:instance:downloadErrorLog

-

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

dds:instance:setAuditLogPolicy

-

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

dds:instance:getAuditLogPolicy

-

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

dds:instance:listAuditLog

-

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

dds:instance:downloadAuditLog

-

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

dds:instance:setTag

-

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

dds:instance:listTags

-

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

dds:instance:createDatabaseUser

-

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

dds:instance:createDatabaseRole

-

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

dds:instance:deleteDatabaseUser

-

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

dds:instance:deleteDatabaseRole

-

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

dds:instance:resetPasswd

-

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

dds:instance:getDatabaseUser

-

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

dds:instance:getDatabaseRole

-

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

dds:instance:getShardingBalancer

-

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

dds:instance:setShardingBalancer

-

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

dds:instance:setBalancerWindow

-

资源类型(Resource)

资源类型(Resource)表示SCP所作用的资源。如表3中的某些操作指定了可以在该操作指定的资源类型,则必须在具有该操作的SCP语句中指定该资源的URN,SCP仅作用于此资源;如未指定,Resource默认为“*”,则SCP将应用到所有资源。您也可以在SCP中设置条件,从而指定资源类型。

DDS定义了以下可以在SCP的Resource元素中使用的资源类型。

表3 DDS支持的资源类型

资源类型

URN

条件键

instanceName

dds:<region>:<account-id>:instanceName:<instance-name>

- g:EnterpriseProjectId

- g:ResourceTag/<tag-key>

条件(Condition)

条件(Condition)是SCP生效的特定条件,包括条件键运算符

  • 条件键表示SCP语句的Condition元素中的键值。根据适用范围,分为全局级条件键和服务级条件键。
    • 全局级条件键(前缀为g:)适用于所有操作,在鉴权过程中,云服务不需要提供用户身份信息,组织将自动获取并鉴权。详情请参见:全局条件键
    • 服务级条件键(前缀为服务缩写,如DDS:)仅适用于对应服务的操作,详情请参见表4
    • 单值/多值表示API调用时请求中与条件关联的值数。单值条件键在API调用时的请求中最多包含一个值,多值条件键在API调用时请求可以包含多个值。例如:g:SourceVpce是单值条件键,表示仅允许通过某个VPC终端节点发起请求访问某资源,一个请求最多包含一个VPC终端节点ID值。g:TagKeys是多值条件键,表示请求中携带的所有标签的key组成的列表,当用户在调用API请求时传入标签可以传入多个值。
  • 运算符与条件键、条件值一起构成完整的条件判断语句,当请求信息满足该条件时,SCP才能生效。支持的运算符请参见:运算符

DDS定义了以下可以在SCP的Condition元素中使用的条件键,您可以使用这些条件键进一步细化SCP语句应用的条件。

表4 DDS支持的服务级条件键

服务级条件键

类型

说明

dds:Encrypted

boolean

按照请求参数中传递的是否开启磁盘加密标签键筛选访问权限。

dds:BackupEnabled

boolean

按照请求参数中传递的是否开启备份策略标签键筛选访问权限。

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容