跳到主要内容

AI 函数服务权限

本文档介绍 AI 函数服务权限,包括 AI MODELACCESS AI MODEL 权限,分别用于管理 AI 模型和调用 AI 函数。

AI MODEL

AI MODEL 相关权限用于管理 AI 模型,包含 CREATE AI MODELALTER AI MODELDROP AI MODEL三个权限。

语法

授予权限的语法如下:

-- 授予 创建 AI 模型权限
GRANT CREATE AI MODEL ON *.* TO 'username'@'host';

-- 授予 修改 AI 模型权限
GRANT ALTER AI MODEL ON *.* TO 'username'@'host';

-- 授予 删除 AI 模型权限
GRANT DROP AI MODEL ON *.* TO 'username'@'host';

GRANT CREATE AI MODEL, ALTER AI MODEL, DROP AI MODEL ON *.* TO 'username'@'host';

撤销权限的语法如下:

-- 撤销 创建 AI 模型权限  
REVOKE CREATE AI MODEL ON *.* FROM 'username'@'host';

-- 撤销 修改 AI 模型权限
REVOKE ALTER AI MODEL ON *.* FROM 'username'@'host';

-- 撤销 删除 AI 模型权限
REVOKE DROP AI MODEL ON *.* FROM 'username'@'host';

-- 检查权限
SHOW GRANTS FOR 'username'@'host';

示例

  1. 创建用户

    CREATE USER test_ai_user@'%' IDENTIFIED BY '123456';
  2. 登录到 test_ai_user 用户

    obclient -h 127.0.0.1 -P 2881 -u test_ai_user@'%' -p *** -A -D test;
  3. 调用 CREATE_AI_MODEL_ENDPOINT 程序

    CALL DBMS_AI_SERVICE.CREATE_AI_MODEL_ENDPOINT (
    -> 'user_ai_model_endpoint_1', '{
    '> "ai_model_name": "my_model1",
    '> "url": "https://https://api.deepseek.com",
    '> "access_key": "sk-xxxxxxxxxxxx",
    '> "request_model_name": "deepseek-chat",
    '> "provider": "deepseek"
    '> }');

    因没有 CREATE AI MODEL 权限,所以报错。

    ERROR 42501: Access denied; you need (at least one of) the create ai model endpoint privilege(s) for this operation
  4. 授予 test_ai_user 用户 CREATE AI MODEL 权限

    GRANT CREATE AI MODEL ON *.* TO test_ai_user@'%';
  5. 验证权限

    CALL DBMS_AI_SERVICE.CREATE_AI_MODEL_ENDPOINT (
    -> 'user_ai_model_endpoint_1', '{
    '> "ai_model_name": "my_model1",
    '> "url": "https://https://api.deepseek.com",
    '> "access_key": "sk-xxxxxxxxxxxx",
    '> "request_model_name": "deepseek-caht",
    '> "provider": "deepseek"
    '> }');

    执行成功。

ACCESS AI MODEL

ACCESS AI MODEL 权限用于调用 AI 函数,包含 AI_COMPLETEAI_EMBEDAI_RERANKAI_PROMPT 四个函数。

语法

授予权限的语法如下:

GRANT ACCESS AI MODEL ON *.* TO 'username'@'host';

撤销权限的语法如下:

REVOKE ACCESS AI MODEL ON *.* FROM 'username'@'host';

示例

  1. 调用 AI_COMPLETE 函数

    SELECT AI_COMPLETE("ob_complete","你是一个翻译大师,请将以下文本翻译成英文:{{你好世界.}},输出仅包含翻译结果") as ans;

    因没有 ACCESS AI MODEL 权限,所以报错。

    ERROR 42501: Access denied; you need (at least one of) the access ai model endpoint privilege(s) for this operation
  2. 授予 test_ai_user 用户 ACCESS AI MODEL 权限

    GRANT ACCESS AI MODEL ON *.* TO test_ai_user@'%';
  3. 验证权限

    SELECT AI_COMPLETE("ob_complete","你是一个翻译大师,请将以下文本翻译成英文:{{你好世界.}},输出仅包含翻译结果") as ans;

    执行成功。

    ```shell
    +----------------+
    | ans |
    +----------------+
    | "Hello world." |
    +----------------+
    1 row in set