Mssql

sanjay3290/ai-skills/skills/mssql

作者 sanjay3290281d88df199357e3091a3be5c743a0fca9a9ae1bApache-2.0收錄於 2026年10月9日更新於 2026年10月9日

Execute read-only SQL queries against multiple Microsoft SQL Server databases. Use when: (1) querying MSSQL/SQL Server databases, (2) exploring database schemas/tables, (3) running SELECT queries for data analysis, (4) checking database contents. Supports multiple database connections with descriptions for intelligent auto-selection. Blocks all write operations (INSERT, UPDATE, DELETE, DROP, etc.) for safety.

包含腳本Data & Analytics
AI 產生的概覽

對已設定的 Microsoft SQL Server 資料庫執行唯讀 SQL 查詢,支援結構探索與多連線選擇。

功能
此技能對一個或多個已設定的 Microsoft SQL Server 資料庫執行安全的唯讀查詢。它提供一個 Python 指令碼,可列出已設定的資料庫、列出資料表、顯示結構,並執行帶可選列數限制的 SELECT 查詢。查詢驗證會阻擋寫入操作,結果列數與欄寬受到限制以確保可讀性與記憶體安全。
適用情境
當需要查詢 MSSQL/SQL Server 資料庫、探索資料庫結構或資料表、執行 SELECT 查詢進行資料分析,或檢查資料庫內容時使用。當存在多個資料庫連線且需要根據描述選擇正確連線時也適用。
執行需求
需要 Python 3.8+ 與 pymssql 套件(透過 requirements.txt 安裝)。需要包含資料庫認證資訊的 connections.json 檔案,放在技能目錄或 ~/.config/claude/mssql-connections.json。需要存取資料庫主機的網路。此技能附帶可執行指令碼(scripts/query.py)。

MSSQL Read-Only Query Skill

Execute safe, read-only queries against configured Microsoft SQL Server databases.

Requirements

  • Python 3.8+
  • pymssql: pip install -r requirements.txt

Setup

Create connections.json in the skill directory or ~/.config/claude/mssql-connections.json.

Security: Set file permissions to 600 since it contains credentials:

bash
chmod 600 connections.json
json
{  "databases": [    {      "name": "production",      "description": "Main app database - users, orders, transactions",      "host": "db.example.com",      "port": 1433,      "database": "app_prod",      "user": "readonly_user",      "password": "your-password",      "encrypt": true,      "tds_version": "7.3"    }  ]}

Config Fields

FieldRequiredDescription
nameYesIdentifier for the database (case-insensitive)
descriptionYesWhat data this database contains (used for auto-selection)
hostYesDatabase hostname
portNoPort number (default: 1433)
databaseYesDatabase name
userYesUsername
passwordYesPassword
encryptNoEnable TLS encryption (default: false)
tds_versionNoTDS protocol version: 7.0, 7.1, 7.2, 7.3, 7.4 (default: auto)

Usage

List configured databases

bash
python3 scripts/query.py --list

Query a database

bash
python3 scripts/query.py --db production --query "SELECT TOP 10 * FROM users"

List tables

bash
python3 scripts/query.py --db production --tables

Show schema

bash
python3 scripts/query.py --db production --schema

Limit results

bash
python3 scripts/query.py --db production --query "SELECT * FROM orders" --limit 100

Note: MSSQL uses TOP N instead of LIMIT. The --limit flag automatically inserts TOP N after SELECT.

Database Selection

Match user intent to database description:

User asks aboutLook for description containing
users, accountsusers, accounts, customers
orders, salesorders, transactions, sales
analytics, metricsanalytics, metrics, reports
logs, eventslogs, events, audit

If unclear, run --list and ask user which database.

Safety Features

  • Read-only enforcement: Query validation blocks write operations (use a db_datareader role user for server-side protection)
  • Query validation: Only SELECT, SHOW, EXPLAIN, WITH, SP_HELP queries allowed
  • Single statement: Multiple statements per query rejected
  • TLS support: Configurable encryption for secure connections
  • Query timeout: 30-second timeout enforced via pymssql
  • Connection timeout: 10-second login timeout
  • Memory protection: Max 10,000 rows per query to prevent OOM
  • Column width cap: 100 char max per column for readable output
  • Credential sanitization: Error messages don't leak passwords

Troubleshooting

ErrorSolution
Config not foundCreate connections.json in skill directory
Authentication failedCheck username/password in config
Connection timeoutVerify host/port, check firewall/VPN
TDS version errorTry "tds_version": "7.3" or "7.4"
Encryption errorSet "encrypt": true for Azure SQL
Permission warningRun chmod 600 connections.json

Exit Codes

  • 0: Success
  • 1: Error (config missing, auth failed, invalid query, database error)

Workflow

  1. Run --list to show available databases
  2. Match user intent to database description
  3. Run --tables or --schema to explore structure
  4. Execute query with appropriate --limit (auto-converts to TOP N)

來源與署名

來源:sanjay3290/ai-skills位於skills/mssql提交281d88d

授權條款: Apache-2.0

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架