核心用法
sql-connector 是面向 OpenClaw Agent 的通用 SQL Server 连接中间件,基于 pymssql(原生 TDS 协议驱动)构建,无需依赖 sqlcmd 等外部子进程。通过工厂模式 get_connector(backend) 获取连接实例,支持 'cloud' 或 'local' 双后端配置。
三种核心 API 覆盖常见数据库操作场景:
execute():执行 INSERT/UPDATE/DELETE,返回布尔状态query():执行 SELECT,返回字典列表scalar():执行聚合查询,返回单个标量值
所有 API 强制参数化查询(%s 占位符),通过元类 _LockCoreMethods 封印核心方法,禁止子类重写,从架构层面阻断 SQL 注入风险。
显著优点
1. 零外部依赖:纯 Python 实现,基于 pymssql 原生 TDS 驱动,无需 sqlcmd/ODBC 配置
2. 安全架构:参数化查询强制封印、自动连接池管理、结构化异常处理
3. 高可用性:内置指数退避重试机制,适应云数据库瞬态故障
4. 环境隔离:通过 SQL_CLOUD_* 与 SQL_LOCAL_* 前缀清晰区分多环境配置
潜在局限
- ALPHA 阶段:API 可能变更,生产环境需充分测试
- MSSQL 专用:仅支持 SQL Server,不兼容 MySQL/PostgreSQL
- Python 生态限制:pymssql 在 ARM 架构(Apple Silicon)和旧版 Windows 上编译依赖较复杂
- 连接字符串硬编码:环境变量方案缺乏动态凭证轮换能力(如 Azure Key Vault 集成)
适合人群
- 构建记忆库、任务队列等持久化层的 OpenClaw Agent 开发者
- 需要云-本地双环境无缝切换的运维场景
- 对 SQL 注入防御有强合规要求的金融/医疗数据处理场景
常规风险
| 风险项 | 说明 |
|--------|------|
| 凭证泄露 | 环境变量明文存储密码,需配合 Docker Secret/Kubernetes Secret 使用 |
| 连接耗尽 | 高并发场景下需监控 pymssql 连接池上限 |
| 版本锁定 | pymssql 2.2.x 与 SQL Server 2022 某些特性(如 JSON 原生支持)兼容性待验证 |
| 网络超时 | 云数据库跨区域访问需合理设置 `login_timeout` 与 `timeout` 参数 |