跳到主要内容

模型权限管理

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

与 AI 函数调用权限的关系

AI MODEL 相关权限用于注册和管理 AI 模型及端点,而 ACCESS AI MODEL 相关权限用于在 SQL 中调用 AI 函数。注册和管理模型及端点时,只需拥有 AI MODEL 权限,无需 ACCESS AI MODEL 权限。但想要在 SQL 中成功调用 AI 函数,既需要已完成模型及端点的注册(需要 AI MODEL 权限),还需要拥有 ACCESS AI MODEL 调用权限。即:模型注册和调用 AI 函数分别对应不同的权限,实际场景通常需要二者同时具备

语法

授予权限的语法如下:

-- 授予 创建 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 用户

    mysql -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"
    '> }');

    执行成功。

相关文档