AIQuery选择
AIQuerySelect是一种安全服务,允许AI执行SQL SELECT 对数据库的查询。它被设计为一个更大的人工智能应用程序中的工具,为人工智能访问和检索数据提供了一种安全可控的方式。
特性
- 安全查询执行: 仅
SELECT和WITH允许发表声明。所有其他DML/DDL/DCL语句都被阻止,以防止对数据库进行未经授权的修改。 - SQL注入保护: 该服务验证并清理所有传入查询,以防止SQL注入攻击。
- 模式反思: 提供端点以检索有关数据库架构的详细信息,包括表、列、约束和外键。
- 行限制: 自动对所有查询应用行限制,以防止过度的数据检索。
- Spring AI集成: 作为Spring AI“工具”构建,可以轻松集成到更大的AI系统中。
技术
- Java 21
- Spring Boot
- 春季AI
- Spring JDBC
- Oracle数据库
工作原理
- 架构发现: AI可以使用
/schema端点来发现数据库模式。这使得AI能够理解可用的表及其关系。 - 查询生成: 基于模式信息,AI生成SQL
SELECT查询以检索所需的数据。 - 查询执行: AI将查询发送到
/query终点。 - 验证: 这
QueryValidator服务拦截查询并执行一系列安全检查。 - 执行: 如果查询有效
QueryService对数据库执行它。 - 结果: 查询结果以结构化格式返回给AI。
设置和运行
构建应用程序
首先,使用Gradle构建应用程序:
./gradlew build从命令行运行
您可以从命令行运行应用程序,将数据库凭据作为参数传递:
java -jar build/libs/AIQuerySelect-0.0.1-SNAPSHOT.jar \
--DB_URL=jdbc:oracle:thin:@your_db_host:1521/your_db_service \
--DB_USERNAME=your_username \
--DB_PASSWORD=your_password使用Claude桌面应用程序运行
要将此服务与Claude Desktop App一起使用,您需要在您的 settings.local.json 文件。此文件通常位于 .claude 用户主目录中的目录。
将以下配置添加到您的 mcpServers:
{
"mcpServers": {
"my-oracle-query-server": {
"command": "java",
"args": [
"-jar",
"C:/your_project_dest/build/libs/AIQuerySelect-0.0.1-SNAPSHOT.jar",
"--DB_URL=jdbc:oracle:thin:@your_db_host:1521/your_db_service",
"--DB_USERNAME=your_username",
"--DB_PASSWORD=your_password"
]
}
}
}替换占位符值 DB_URL, DB_USERNAME,以及 DB_PASSWORD 使用您的实际数据库凭据。
______________________________________________________________________
AIQuerySelect(韩语)
AIQuerySelect是AI针对数据库的SQL SELECT 允许执行查询的安全服务。它被设计为用于更大的AI应用程序的工具,并提供AI以安全、受控制的方式访问和检索数据的方法。
主要功能
- 运行安全查询:
SELECT及WITH只允许使用语句。所有其他DML/DDL/DCL语句都将被阻止,以防止未经授权修改数据库。 - SQL注入防御: 检查并清理所有传入的查询,以防止SQL注入攻击。
- 方案简介: 提供一个端点,用于检索有关数据库模式的详细信息,包括表、列、约束条件和外键。
- 行限制: 为避免过度搜索数据,将自动对所有查询应用行限制。
- Spring AI集成: 它由Spring AI“工具”构建,可以轻松集成到更大的AI系统中。
技术堆栈
- Java 21
- Spring Boot
- 春季AI
- Spring JDBC
- Oracle数据库
工作原理
- 模式搜索: AI
/schema可以使用端点搜索数据库模式。这使AI可以了解可用表及其关系。 - 创建查询: 基于架构信息,AI使用SQL来检索所需数据
SELECT创建查询。 - 运行查询: AI将查询
/query发送到端点。 - 验证:
QueryValidator服务拦截查询并执行一系列安全检查。 - 运行: 如果查询有效
QueryService对数据库执行查询。 - 结果: 查询结果以结构化格式返回给AI。
设置和运行
构建应用程序
首先,使用Gradle构建应用程序。
./gradlew build从命令行运行
可以从命令行运行应用程序,并将数据库凭据作为自变量传递。
java -jar build/libs/AIQuerySelect-0.0.1-SNAPSHOT.jar \
--DB_URL=jdbc:oracle:thin:@your_db_host:1521/your_db_service \
--DB_USERNAME=your_username \
--DB_PASSWORD=your_password以Claude桌面应用程序运行
将此服务与Claude桌面应用程序一起使用的步骤 settings.local.json 必须在文件中配置。此文件通常位于用户主目录的 .claude 在目录中。
mcpServers在中添加以下配置:
{
"mcpServers": {
"my-oracle-query-server": {
"command": "java",
"args": [
"-jar",
"C:/your_project_dest/build/libs/AIQuerySelect-0.0.1-SNAPSHOT.jar",
"--DB_URL=jdbc:oracle:thin:@your_db_host:1521/your_db_service",
"--DB_USERNAME=your_username",
"--DB_PASSWORD=your_password"
]
}
}
}}
`DB_URL`, `DB_USERNAME`, `DB_PASSWORD`의 자리 표시자 값을 실제 데이터베이스 자격 증명으로 바꾸십시오.```