You need to enable JavaScript to run this app.
文档中心
向量数据库VikingDB

向量数据库VikingDB

复制全文
下载 pdf
用户管理(Users)
DeleteOpenVikingUser - 删除库用户(企业版支持)
复制全文
下载 pdf
DeleteOpenVikingUser - 删除库用户(企业版支持)

概述

DeleteOpenVikingUser 接口用于删除指定库下的用户(仅企业版支持)。

前置条件

完成 "数据库管理使用说明" 页面的 AK/SK 获取后,可调用本接口。当前库版本需为企业版(enterprise),调用者需具备管理员权限。

请求接口

Action

DeleteOpenVikingUser

接口标识

请求方法

POST

客户端请求类型

请求参数

字段

类型

必填

说明

ResourceID

string

库 ID

OpenVikingAccountID

string

待删除用户所属数据空间;缺省回退默认数据空间 default

UserID

string

用户 ID,仅含字母/数字/_/-,长度 1~64

响应消息

字段

类型

说明

Success

bool

是否成功删除

常见错误码

HTTP 状态

Error.Code

含义 / 触发场景

403

AccessDenied

当前版本不支持(个人版)

404

ResourceNotExist

指定库或用户不存在

409

InvalidRequest

无法删除最后一个 admin 用户

完整示例

Python 请求示例

import os
import datetime
import hashlib
import hmac
from urllib.parse import quote

import requests, json

def norm_query(params):
    query = ""
    for key in sorted(params.keys()):
        if type(params[key]) == list:
            for k in params[key]:
                query = (
                        query + quote(key, safe="-_.~") + "=" + quote(k, safe="-_.~") + "&"
                )
        else:
            query = (query + quote(key, safe="-_.~") + "=" + quote(params[key], safe="-_.~") + "&")
    query = query[:-1]
    return query.replace("+", "%20")

def hmac_sha256(key: bytes, content: str):
    return hmac.new(key, content.encode("utf-8"), hashlib.sha256).digest()

def hash_sha256(content: str):
    return hashlib.sha256(content.encode("utf-8")).hexdigest()

class ClientForConsoleApi:
    def __init__(self, ak, sk, host, region):
        self.ak = ak
        self.sk = sk
        self.host = host
        self.region = region
        self.service_code = "vikingdb"
        self.version = "2025-06-09"

    def request(self, method, action, body, query=None, header=None):
        if query is None:
            query = {}
        if header is None:
            header = {}
        credential = {
            "access_key_id": self.ak,
            "secret_access_key": self.sk,
            "service": self.service_code,
            "region": self.region,
        }
        request_param = {
            "body": json.dumps(body),
            "host": self.host,
            "path": "/",
            "method": method,
            "content_type": 'application/json',
            "date": datetime.datetime.utcnow(),
            "query": {"Action": action, "Version": self.version, **query},
        }
        if body is None:
            request_param["body"] = ""
        x_date = request_param["date"].strftime("%Y%m%dT%H%M%SZ")
        short_x_date = x_date[:8]
        x_content_sha256 = hash_sha256(request_param["body"])
        sign_result = {
            "Host": request_param["host"],
            "X-Content-Sha256": x_content_sha256,
            "X-Date": x_date,
            "Content-Type": request_param["content_type"],
        }
        signed_headers_str = ";".join(
            ["content-type", "host", "x-content-sha256", "x-date"]
        )
        canonical_request_str = "\n".join(
            [request_param["method"].upper(),
             request_param["path"],
             norm_query(request_param["query"]),
             "\n".join(
                 [
                     "content-type:" + request_param["content_type"],
                     "host:" + request_param["host"],
                     "x-content-sha256:" + x_content_sha256,
                     "x-date:" + x_date,
                 ]
             ),
             "",
             signed_headers_str,
             x_content_sha256,
             ]
        )

        hashed_canonical_request = hash_sha256(canonical_request_str)
        credential_scope = "/".join([short_x_date, credential["region"], credential["service"], "request"])
        string_to_sign = "\n".join(["HMAC-SHA256", x_date, credential_scope, hashed_canonical_request])

        k_date = hmac_sha256(credential["secret_access_key"].encode("utf-8"), short_x_date)
        k_region = hmac_sha256(k_date, credential["region"])
        k_service = hmac_sha256(k_region, credential["service"])
        k_signing = hmac_sha256(k_service, "request")
        signature = hmac_sha256(k_signing, string_to_sign).hex()

        sign_result["Authorization"] = "HMAC-SHA256 Credential={}, SignedHeaders={}, Signature={}".format(
            credential["access_key_id"] + "/" + credential_scope,
            signed_headers_str,
            signature,
        )
        header = {**header, **sign_result}
        r = requests.request(method=method,
                             url="https://{}{}".format(request_param["host"], request_param["path"]),
                             headers=header,
                             params=request_param["query"],
                             data=request_param["body"],
                             )
        return r.status_code, r.headers, r.json()

if __name__ == '__main__':
    client = ClientForConsoleApi(
        ak = "*",#替换为您的 AK
        sk ="*" ,#替换为您的 SK
        host="vikingdb.cn-beijing.volcengineapi.com", #替换为您所在地区的域名
        region="cn-beijing"
    )
    http_code, _, result_json = client.request(
        method="POST",
        action="DeleteOpenVikingUser",#action替换为当前操作
        body={
            "ResourceID": "ov-xxx",
            "OpenVikingAccountID": "space_a",
            "UserID": "user_to_delete"
        }
    )
    print("req http status code: ", http_code)
    print("req result: \n", result_json)

响应示例

{
    "ResponseMetadata": {
        "RequestId": "20250609xxxxxxxxxxxxxxxx",
        "Action": "DeleteOpenVikingUser",
        "Version": "2025-06-09",
        "Service": "vikingdb",
        "Region": "cn-beijing"
    },
    "Result": {
        "Success": true
    }
}
最近更新时间:2026.09.17 15:38:21
这个页面对您有帮助吗?
有用
有用
无用
无用