You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何限制Teradata 17中Batch用户仅通过SQL Assistant访问?

限制Teradata 17中Batch用户仅通过SQL Assistant访问

1. 确认SQL Assistant的客户端特征

先执行查询获取SQL Assistant连接时的客户端标识信息:

SELECT ClientType, AppInfo 
FROM DBC.SessionInfoV 
WHERE UserName = '你的Batch用户名';

通常SQL Assistant的ClientType为ODBC,AppInfo字段会包含SQL Assistant关键字,记录这些值用于后续触发器判断。

2. 创建登录触发器拦截非合规连接

创建登录级触发器,当指定Batch用户使用非SQL Assistant客户端登录时直接拒绝:

REPLACE TRIGGER Restrict_BatchUser_To_SQLAssistant
AFTER LOGON ON DBC
FOR EACH SESSION
WHEN (
  USER = 'Batch_User' -- 替换为目标Batch用户名
  AND (
    UPPER(AppInfo) NOT LIKE '%SQL ASSISTANT%'
    OR ClientType NOT IN ('ODBC') -- 替换为第一步查到的ClientType
  )
)
BEGIN
  SIGNAL SQLSTATE '42000' 
  SET MESSAGE_TEXT = '该账户仅允许通过SQL Assistant访问';
END;

3. 验证触发器效果

使用BTEQ、Teradata Studio等其他客户端尝试登录该Batch用户,会触发报错无法建立连接;通过SQL Assistant登录则可正常访问。

注意事项

  • 创建触发器的账户需具备CREATE TRIGGER权限,以及访问DBC.SessionInfoV的权限。
  • 若需允许管理员临时访问该账户,可在WHEN条件中添加排除逻辑,比如AND USER != '你的管理员用户名'。
  • 若SQL Assistant的客户端标识与示例不符,以第一步查询结果为准调整触发器中的判断条件。

内容的提问来源于stack exchange,提问作者jay jo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 07:24:25