小贴士:按下Ctrl+D 或 ⌘+D,一键收藏本站,方便下次快速访问!
MIT License
1
最近更新:2个月前

Netwrix Access Analyzer 的 MCP 服务器

Netwrix访问分析器的MCP服务器

一个基于FastMCP的服务器,用于Netwrix访问分析器数据分析,设计用于与Claude桌面版集成以增强数据分析能力。

功能特性

  • 启动时自动连接SQL Server
  • 动态数据库架构探索
  • SQL查询执行
  • Netwrix访问分析器文件系统工具

依赖项

该MCP服务器需要以下依赖项:

  • Python 3.12或更高版本
  • MCP SDK
  • pyodbc 4.0.39或更高版本(用于SQL Server连接)
  • python-dotenv 1.0.0或更高版本(用于环境变量管理)
  • ODBC Driver 17 for SQL Server或更新版本(必须安装在系统中)

Netwrix访问分析器(NAA)依赖项

该MCP服务器要求完成Netwrix访问分析器(NAA)文件系统扫描。

安装

系统依赖项

首先确保已安装SQL Server的ODBC驱动:

Python依赖项

使用uv安装所需的Python包

数据库设置

仅用于开发或测试目的:

  1. 在项目目录中创建.env文件,包含SQL Server连接信息:
复制代码
# 数据库连接信息
DB_SERVER=your_server_name
DB_NAME=your_database_name
DB_USER=your_username
DB_PASSWORD=your_password
DB_USE_WINDOWS_AUTH=FALSE     # 设为TRUE使用Windows认证
  1. 将示例值替换为实际的数据库连接信息。

与Claude桌面版集成

要使该MCP服务器在Claude桌面版中可用:

  1. 打开Claude桌面版
  2. 导航到Claude桌面版配置文件:
    • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows:%APPDATA%\Claude\claude_desktop_config.json
  3. mcpServers部分添加以下配置。
  4. 重启Claude桌面版

配置示例

json 复制代码
"NetwrixAccessAnalyzer": {
  "command": "/path/to/your/uv",
  "args": [
    "run",
    "--with",
    "pyodbc,fastmcp",
    "fastmcp",
    "run",
    "/path/to/mcp/main.py"
  ],
  "env": {
    "DB_SERVER": "your_server_address",
    "DB_NAME": "your_database_name",
    "DB_USER": "your_username",
    "DB_PASSWORD": "your_password",
    "DB_USE_WINDOWS_AUTH": "FALSE"
  }
}
  1. /path/to/your/uv替换为uv可执行文件的实际路径(使用which uvwhere uv查找),并更新到main.py文件的路径以及数据库连接信息。
  2. 重启Claude桌面版应用更改

可用工具和示例提示

该MCP服务器提供以下工具用于与数据库系统交互和分析访问数据:

数据库连接工具

连接数据库

连接到MS SQL Server数据库。

参数:

  • server:SQL Server地址
  • database:数据库名称
  • username:SQL Server用户名(如果使用Windows认证则为可选)
  • password:SQL Server密码(如果使用Windows认证则为可选)
  • trusted_connection:Windows认证的布尔标志

示例提示:
"连接到我们在[DBSERVER]的SQL Server数据库,数据库名为[DBNAME],使用[USERNAME]用户和[PASSWORD]密码。"

显示连接状态

检查当前数据库连接状态。

示例提示:
"数据库当前是否已连接?显示连接状态。"

数据查询和架构工具

显示表架构

获取数据库表架构的详细说明。

参数:

  • table_name:要解释的表名

示例提示:
"解释Permissions表的架构。它有哪些列?"

获取表架构

检索特定表的架构信息。

参数:

  • table_name:要获取架构的表名。

示例提示:
"显示Users表的架构。"

获取表样本

从指定表中检索10行样本。

参数:

  • tablename:要采样的表名

示例提示:
"从Permissions表中给我10行样本。"

访问分析工具

发现敏感数据

识别包含敏感数据的位置。

示例提示:
"查找我们环境中包含敏感数据的所有共享。"

获取受托人访问权限

识别特定用户或组具有访问权限的位置。

参数:

  • trustee:域\用户名格式
  • levelsdown:要遍历的目录级别数(默认:0)

示例提示:
"DOMAIN\JohnDoe在我们的文件系统中哪些地方有访问权限?"

获取受托人权限来源

确定用户对特定资源的权限来源。

参数:

  • trustee:域\用户名格式
  • resourcepath:资源路径

示例提示:
"为什么DOMAIN\JaneDoe有权访问\server\share\folder?这个权限的来源是什么?"

获取资源访问权限

显示谁有权访问特定资源。

参数:

  • resource:资源路径

示例提示:
"谁有权访问\server\finance?显示所有用户和组。"

获取未使用访问权限

查找对特定资源有未使用访问权限的用户。

参数:

  • resource:资源路径

示例提示:
"查找过去一年未访问\server\hr的所有用户。"

获取影子访问权限

查找对关键资源有影子访问权限的用户。

示例提示:
"查找对信用卡有影子访问权限的所有用户"
"查找sbcloudlab\admins的影子访问权限"

操作工具

获取运行作业

检查当前运行的Netwrix访问分析器作业。

示例提示:
"现在有任何访问分析器作业在运行吗?显示状态。"

故障排除

连接问题

如果遇到连接问题:

  1. 验证SQL Server是否正在运行且可从网络访问
  2. 检查.env文件中的凭据
  3. 确保正确安装了ODBC驱动
  4. 检查日志获取详细错误信息

Claude桌面版集成

如果Claude桌面版找不到uv命令:

  1. 在配置中使用uv的完整路径(使用which uvwhere uv查找)
  2. 确保在配置更改后重启了Claude桌面版
  3. 检查Claude日志中与MCP服务器相关的错误信息