SQL Server 只读连接助手
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装规范名 @user_91acba48/sql-server-connection 的 SQL Server 只读连接技能到当前 AI 助手,用于后续执行数据库查询与故障排查任务。
技能介绍
连接 SQL Server 业务库的常见痛点
当需要从 MES、ERP 等 SQL Server 业务库取数时,开发者常遇到连接串属性错误引发的连锁报错,比如把超时属性写成 Timeout=10 导致驱动解析失败,连带出现 18456(登录被拒)或 4060(无法打开库)等迷惑性错误。另外,只读权限配置不当可能带来数据安全风险,而登录名拼写差异、端口与版本号混淆等问题也会拖慢排查进度。
技能核心能力与工作步骤
这个技能聚焦最小权限 + 环境兼容的只读连接方案,核心步骤包括:
- 前置环境自检:验证系统是否安装
ODBC Driver 17 for SQL Server(或旧版 Native Client 11.0),检查pyodbc包是否可用,确认本机 TCP 能到达服务器默认端口1433。 - 分阶段连接测试:通过模板脚本先连
master库验证登录状态,再连接目标库;若遇 4060 错误,自动列出当前账号可访问的数据库,方便定位映射问题。 - 安全权限配置:指导创建仅含
public服务器角色和db_datareader数据库角色的只读账号,禁止勾选db_datawriter或db_owner,避免赋予写权限。 - 脚本模板支持:提供参数化脚本
connect_template.py,支持自定义查询、列出前 20 张表、导出 CSV,密码通过环境变量DB_PWD或交互输入,避免硬编码。
适用边界与注意事项
- 仅适用于 SQL Server 数据库,且优先处理只读查询需求,除非用户明确要求,不涉及写操作。
- 连接串属性必须符合 ODBC 规范,如超时需用
Login Timeout而非Timeout,加密属性避免使用Mandatory。 - 凭据仅用于当前连接,不写入持久化文件;需确保账号在目标库有正确映射,避免因库名拼写或实例错误导致连接失败。
使用场景
- 数据分析师需要连接MES系统提取生产数据生成CSV报表,要求账号仅限查询且无法修改或删除业务库中的任何记录。
- 运维人员排查pyodbc连接报错时,需通过模板分阶段测试先连master验证登录,再定位目标库4060错误的具体原因。
- 业务开发者在连接SQL Server 2008 R2时遇到TLS协议不兼容,需要使用标准连接串配置TrustServerCertificate并排查无效属性。
- 数据工程师需要探查ERP数据库的表结构并导出部分数据进行分析,要求脚本支持参数化配置且密码不能硬编码在代码中。
适合人员
- 后端开发工程师:需要在项目中集成SQL Server数据查询功能,要求确保数据库连接安全且账号权限严格限制为只读。
- 数据分析师:负责从MES或ERP业务库提取数据制作报表,诉求是能快速排查ODBC驱动或连接串导致的取数失败问题。
- 数据库运维人员:负责维护企业SQL Server实例,诉求是通过分阶段连接测试和错误排查模板快速定位18456或4060等连接故障。