查询数据库账号的权限信息

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

我的收藏

1. 接口描述

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

查询数据库账号对某数据库对象拥有的权限列表。

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

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

2. 输入参数

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

参数名称 必选 类型 描述
Action String 公共参数,本接口取值:DescribeAccountPrivileges。
Version String 公共参数,本接口取值:2017-03-12。
Region String 公共参数,详见产品支持的 地域列表
DBInstanceId String 实例ID。
示例值:postgres-4sfuv15b
UserName String 查询此账号对某数据库对象所拥有的权限信息。
示例值:test
DatabaseObjectSet.N Array of DatabaseObject 要查询的数据库对象信息
示例值:[{"ObjectType":"table","ObjectName":"users","DatabaseName":"user_database","SchemaName":"user_schema"}]

3. 输出参数

参数名称 类型 描述
PrivilegeSet Array of DatabasePrivilege 用户拥有数据库user_database的CREATE、CONNECT、TEMPORARY权限
示例值:{"Object": {"DatabaseName": "", "ObjectName": "user_database", "ObjectType": "database", "SchemaName": "", "TableName": "" }, "PrivilegeSet": [ "CREATE", "CONNECT", "TEMPORARY"] }
RequestId String 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。

4. 示例

示例1 查看账号类型

查看账号类型

输入示例

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

{
    "DBInstanceId": "postgres-5cz25tr5",
    "UserName": "user_without_permission",
    "DatabaseObjectSet": [
        {
            "ObjectType": "account",
            "ObjectName": "user_without_permission"
        }
    ]
}

输出示例

{
    "Response": {
        "PrivilegeSet": [
            {
                "Object": {
                    "DatabaseName": "",
                    "ObjectName": "without_per",
                    "ObjectType": "account",
                    "SchemaName": "",
                    "TableName": ""
                },
                "PrivilegeSet": [
                    "tencentDBSuper"
                ]
            }
        ],
        "RequestId": "dc43ec52-efbe-4bde-b588-bfa427a8c29b"
    }
}

示例2 查询数据库权限

查询账号without_per对数据库user_database的权限

输入示例

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

{
    "DBInstanceId": "postgres-5cz25tr5",
    "UserName": "without_per",
    "DatabaseObjectSet": [
        {
            "ObjectType": "database",
            "ObjectName": "user_database"
        }
    ]
}

输出示例

{
    "Response": {
        "PrivilegeSet": [
            {
                "Object": {
                    "DatabaseName": "",
                    "ObjectName": "user_database",
                    "ObjectType": "database",
                    "SchemaName": "",
                    "TableName": ""
                },
                "PrivilegeSet": [
                    "CREATE",
                    "CONNECT",
                    "TEMPORARY"
                ]
            }
        ],
        "RequestId": "fc891ba1-8943-4116-8eb6-4696873d90c8"
    }
}

示例3 查询模式权限

查询账号without_per对user_database数据库下,user_schema的权限

输入示例

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

{
    "DBInstanceId": "postgres-5cz25tr5",
    "UserName": "without_per",
    "DatabaseObjectSet": [
        {
            "ObjectType": "schema",
            "ObjectName": "user_schema",
            "DatabaseName": "user_database"
        }
    ]
}

输出示例

{
    "Response": {
        "PrivilegeSet": [
            {
                "Object": {
                    "DatabaseName": "user_database",
                    "ObjectName": "user_schema",
                    "ObjectType": "schema",
                    "SchemaName": "",
                    "TableName": ""
                },
                "PrivilegeSet": [
                    "USAGE",
                    "CREATE"
                ]
            }
        ],
        "RequestId": "410f0673-c35c-401e-97c8-d4e196d1f33c"
    }
}

示例4 批量查询

批量查询

输入示例

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

{
    "DBInstanceId": "postgres-5cz25tr5",
    "UserName": "without_per",
    "DatabaseObjectSet": [
        {
            "ObjectType": "table",
            "ObjectName": "users",
            "DatabaseName": "user_database",
            "SchemaName": "user_schema"
        },
        {
            "ObjectType": "schema",
            "ObjectName": "user_schema",
            "DatabaseName": "user_database"
        }
    ]
}

输出示例

{
    "Response": {
        "PrivilegeSet": [
            {
                "Object": {
                    "DatabaseName": "user_database",
                    "ObjectName": "users",
                    "ObjectType": "table",
                    "SchemaName": "user_schema",
                    "TableName": ""
                },
                "PrivilegeSet": [
                    "DELETE",
                    "TRUNCATE",
                    "REFERENCES",
                    "TRIGGER",
                    "SELECT",
                    "INSERT",
                    "UPDATE"
                ]
            },
            {
                "Object": {
                    "DatabaseName": "user_database",
                    "ObjectName": "user_schema",
                    "ObjectType": "schema",
                    "SchemaName": "",
                    "TableName": ""
                },
                "PrivilegeSet": [
                    "CREATE",
                    "USAGE"
                ]
            }
        ],
        "RequestId": "41d71515-447d-4557-a799-3b60ad86323d"
    }
}

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.FailedOperationError 操作失败,请稍后重试。
FailedOperation.PreCheckError 操作预检查失败。
InternalError.DBError 后台DB执行错误。
InvalidParameterValue.InvalidAccountNameError 账号设置无效,请遵循账号命名规则:账号名需要1-16个字符,只能由字母、数字或下划线组成;不能为postgres;不能由数字、pg_及tencentdb_开头;所有规则均不区分大小写。
InvalidParameterValue.InvalidAccountNameFormatError 账号无效,请遵循账号命名规则:由字母(a-z, A-Z)、数字(0-9)、下划线()组成,以字母或()开头,最多63个字符。不能使用系统保留关键字,不能为postgres,且不能由pg_或tencentdb_开头。
InvalidParameterValue.InvalidDatabaseObjectName 当前仅支持操作名称为英文、下划线、数字及特殊符号[]组成的数据库对象,函数及存储过程额外支持三个特殊符号(,)
OperationDenied.InstanceAccessDeniedError 您没有权限操作当前资源。
OperationDenied.InstanceStatusLimitOpError 实例状态限制当前操作。
ResourceNotFound.InstanceNotFoundError 实例不存在。