文档中心>云数据库 PostgreSQL>API 文档>账号相关接口>修改数据库账号的权限、类型

修改数据库账号的权限、类型

最近更新时间:2024-09-03 02:17:26

我的收藏

1. 接口描述

接口请求域名: postgres.tencentcloudapi.com 。

修改某账号对某数据库对象的权限、修改账号类型。

默认接口请求频率限制:20次/秒。

推荐使用 API Explorer
点击调试
API Explorer 提供了在线调用、签名验证、SDK 代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成 SDK 调用示例。

2. 输入参数

以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数

参数名称 必选 类型 描述
Action String 公共参数,本接口取值:ModifyAccountPrivileges。
Version String 公共参数,本接口取值:2017-03-12。
Region String 公共参数,详见产品支持的 地域列表
DBInstanceId String 实例ID。
示例值:postgres-4sfuv15b
UserName String 修改此账号对某数据库对象的权限。
示例值:test
ModifyPrivilegeSet.N Array of ModifyPrivilege 修改的权限信息,支持批量修改,一次最高修改50条。
示例值:[{"DatabasePrivilege":{"Object":{"ObjectType":"account","ObjectName":"user_without_permission"},"PrivilegeSet":["tencentDBSuper"]},"ModifyType":"alterRole"}]

3. 输出参数

参数名称 类型 描述
RequestId String 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。

4. 示例

示例1 批量修改权限

批量修改without_per账号的权限:授予user_database库下user_schema模式的CREATE权限,并撤销对应USAGE权限;授予user_database库下,属于user_schema模式的users表的SELECT权限。修改without_per账号的类型为tencentDBSuper。

输入示例

POST / HTTP/1.1
Host: postgres.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: ModifyAccountPrivileges
<公共请求参数>

{
    "DBInstanceId": "postgres-5cz25tr5",
    "UserName": "without_per",
    "ModifyPrivilegeSet": [
        {
            "DatabasePrivilege": {
                "Object": {
                    "ObjectType": "schema",
                    "ObjectName": "user_schema",
                    "DatabaseName": "user_database"
                },
                "PrivilegeSet": [
                    "USAGE"
                ]
            },
            "ModifyType": "revokeObject",
            "IsCascade": false
        },
        {
            "DatabasePrivilege": {
                "Object": {
                    "ObjectType": "schema",
                    "ObjectName": "user_schema",
                    "DatabaseName": "user_database"
                },
                "PrivilegeSet": [
                    "CREATE"
                ]
            },
            "ModifyType": "grantObject"
        },
        {
            "DatabasePrivilege": {
                "Object": {
                    "ObjectType": "table",
                    "ObjectName": "users",
                    "DatabaseName": "user_database",
                    "SchemaName": "user_schema"
                },
                "PrivilegeSet": [
                    "SELECT"
                ]
            },
            "ModifyType": "grantObject"
        },
        {
            "DatabasePrivilege": {
                "Object": {
                    "ObjectType": "account",
                    "ObjectName": "without_per"
                },
                "PrivilegeSet": [
                    "tencentDBSuper"
                ]
            },
            "ModifyType": "alterRole"
        }
    ]
}

输出示例

{
    "Response": {
        "RequestId": "73086328-bdfa-4bf9-8206-8a3d6b2438b1"
    }
}

5. 开发者资源

腾讯云 API 平台

腾讯云 API 平台 是综合 API 文档、错误码、API Explorer 及 SDK 等资源的统一查询平台,方便您从同一入口查询及使用腾讯云提供的所有 API 服务。

API Inspector

用户可通过 API Inspector 查看控制台每一步操作关联的 API 调用情况,并自动生成各语言版本的 API 代码,也可前往 API Explorer 进行在线调试。

SDK

云 API 3.0 提供了配套的开发工具集(SDK),支持多种编程语言,能更方便的调用 API。

命令行工具

6. 错误码

以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码

错误码 描述
DBError 后台DB执行错误。
FailedOperation.DatabaseAccessError 管控元数据库访问失败,请稍后重试。如果持续不成功,请联系客服进行处理。
FailedOperation.FailedOperationError 操作失败,请稍后重试。
FailedOperation.PreCheckError 操作预检查失败。
InternalError.DBError 后台DB执行错误。
InvalidParameter.ParameterCheckError 参数检查失败。
InvalidParameterValue.InvalidAccountNameError 账号设置无效,请遵循账号命名规则:账号名需要1-16个字符,只能由字母、数字或下划线组成;不能为postgres;不能由数字、pg_及tencentdb_开头;所有规则均不区分大小写。
InvalidParameterValue.InvalidAccountNameFormatError 账号无效,请遵循账号命名规则:由字母(a-z, A-Z)、数字(0-9)、下划线()组成,以字母或()开头,最多63个字符。不能使用系统保留关键字,不能为postgres,且不能由pg_或tencentdb_开头。
InvalidParameterValue.InvalidDatabaseObjectName 当前仅支持操作名称为英文、下划线、数字及特殊符号[]组成的数据库对象,函数及存储过程额外支持三个特殊符号(,)
InvalidParameterValue.ParameterOutOfRange 参数超出可设置范围
OperationDenied.InstanceAccessDeniedError 您没有权限操作当前资源。
OperationDenied.InstanceStatusLimitOpError 实例状态限制当前操作。
OperationDenied.KernelVersionError 内核版本过低,导致实例无法创建tencentDBSuper账号。如果您想使用此功能,请升级内核版本。
ResourceNotFound.InstanceNotFoundError 实例不存在。