AI 函数服务权限
本文档介绍 AI 函数服务权限,包括 AI MODEL 和 ACCESS AI MODEL 权限,分别用于管理 AI 模型和调用 AI 函数。
AI MODEL
AI MODEL 相关权限用于管理 AI 模型,包含 CREATE AI MODEL、ALTER AI MODEL和DROP 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';
示例
-
创建用户
CREATE USER test_ai_user@'%' IDENTIFIED BY '123456'; -
登录到 test_ai_user 用户
obclient -h 127.0.0.1 -P 2881 -u test_ai_user@'%' -p *** -A -D test; -
调用
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 -
授予
test_ai_user用户CREATE AI MODEL权限GRANT CREATE AI MODEL ON *.* TO test_ai_user@'%'; -
验证权限
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_COMPLETE、AI_EMBED、AI_RERANK、AI_PROMPT 四个函数。
语法
授予权限的语法如下:
GRANT ACCESS AI MODEL ON *.* TO 'username'@'host';
撤销权限的语法如下:
REVOKE ACCESS AI MODEL ON *.* FROM 'username'@'host';
示例
-
调用
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 -
授予
test_ai_user用户ACCESS AI MODEL权限GRANT ACCESS AI MODEL ON *.* TO test_ai_user@'%'; -
验 证权限
SELECT AI_COMPLETE("ob_complete","你是一个翻译大师,请将以下文本翻译成英文:{{你好世界.}},输出仅包含翻译结果") as ans;执行成功。
```shell
+----------------+
| ans |
+----------------+
| "Hello world." |
+----------------+
1 row in set