Netwrix Access Analyzer용 MCP 서버
Netwrix Access Analyzer 데이터 분석을 위한 FastMCP 기반 서버로, Claude Desktop과 통합되어 향상된 데이터 분석 기능을 제공하도록 설계되었습니다.
특징
- 시작 시 자동 연결을 통한 SQL Server 통합
- 동적 데이터베이스 스키마 탐색
- SQL 쿼리 실행
- Netwrix Access Analyzer 파일 시스템 도구
종속성
이 MCP 서버에는 다음과 같은 종속성이 필요합니다.
- Python 3.12 이상
- MCP SDK
- pyodbc 4.0.39 이상(SQL Server 연결용)
- python-dotenv 1.0.0 이상(환경 변수 관리용)
- SQL Server용 ODBC 드라이버 17 이상(시스템에 설치되어 있어야 함)
Netwrix Access Analyzer(NAA) 종속성
이 MCP 서버에서는 Netwrix Access Analyzer(NAA) 파일 시스템 검사를 완료해야 합니다.
설치
시스템 종속성
먼저, SQL Server용 ODBC 드라이버가 설치되어 있는지 확인하세요.
- macOS : Homebrew를 사용하여 설치:
brew install microsoft/mssql-release/msodbcsql17
- Windows : Microsoft ODBC 드라이버 페이지 에서 다운로드하고 설치하세요.
- Linux : 배포판에 대한 Microsoft의 지침을 따르세요.
파이썬 종속성
uv
사용하여 필요한 Python 패키지를 설치하세요
데이터베이스 설정
개발 또는 테스트 목적으로만 사용하세요:
- SQL Server 연결 세부 정보가 포함된 프로젝트 디렉토리에
.env
파일을 만듭니다.
지엑스피1
- 예제 값을 실제 데이터베이스 연결 정보로 바꾸세요.
Claude Desktop과 통합
Claude Desktop에서 이 MCP 서버를 사용하려면:
- 클로드 데스크톱 열기
- Claude Desktop 구성 파일로 이동합니다.
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
mcpServers
섹션에 다음 구성을 추가합니다.- Claude Desktop을 다시 시작하세요
구성 예
/path/to/your/uv``uv
실행 파일의 실제 경로로 바꾸고(which uv
또는where uv
로 검색),main.py
파일의 경로와 데이터베이스 연결 정보도 업데이트합니다.- 변경 사항을 적용하려면 Claude Desktop을 다시 시작하세요.
사용 가능한 도구 및 샘플 프롬프트
MCP 서버는 데이터베이스 시스템과 상호 작용하고 액세스 데이터를 분석하기 위한 다음과 같은 도구를 제공합니다.
데이터베이스 연결 도구
Connect-데이터베이스
MS SQL Server 데이터베이스에 연결합니다.
매개변수:
server
: SQL Server 주소database
: 데이터베이스 이름username
: SQL Server 사용자 이름(Windows 인증을 사용하는 경우 선택 사항)password
: SQL Server 비밀번호(Windows 인증을 사용하는 경우 선택 사항)trusted_connection
: Windows 인증을 위한 부울 플래그
예시 프롬프트: "[DBNAME]이라는 이름으로 [DBSERVER]에 있는 SQL Server 데이터베이스에 연결하고 [USERNAME] 사용자 이름과 [PASSWORD] 비밀번호를 사용하세요."
연결 상태 표시
현재 데이터베이스 연결 상태를 확인하세요.
예시 프롬프트: "데이터베이스가 현재 연결되어 있습니까? 연결 상태를 보여주세요."
데이터 쿼리 및 스키마 도구
Show-TableSchema
데이터베이스 테이블의 스키마에 대한 자세한 설명을 받으세요.
매개변수:
table_name
: 설명할 테이블의 이름
예시 프롬프트: "Permissions 테이블의 스키마를 설명하세요. 어떤 열이 있나요?"
Get-TableSchema
특정 테이블에 대한 스키마 정보를 검색합니다.
매개변수:
table_name
: 스키마를 가져올 테이블의 이름입니다.
예시 프롬프트: "Users 테이블의 스키마를 보여주세요."
Get-TableSample
지정된 테이블에서 10개 행의 샘플을 검색합니다.
매개변수:
tablename
: 샘플링할 테이블의 이름
예시 프롬프트: "Permissions 테이블에서 10개 행의 샘플을 주세요."
액세스 분석 도구
Discover-SensitiveData
민감한 데이터가 포함된 위치를 식별합니다.
예시 프롬프트: "우리 환경에서 민감한 데이터가 포함된 모든 공유 항목을 찾으세요."
Get-TrusteeAccess
특정 사용자 또는 그룹이 액세스할 수 있는 위치를 식별합니다.
매개변수:
trustee
: 도메인\사용자 이름 형식levelsdown
: 탐색할 디렉토리 레벨 수(기본값: 0)
예시 프롬프트: "DOMAIN\JohnDoe는 우리 파일 시스템에서 어디에 접근할 수 있나요?"
Get-TrusteePermissionSource
특정 리소스에 대한 사용자 권한의 출처를 확인합니다.
매개변수:
trustee
: 도메인\사용자 이름 형식resourcepath
: 리소스 경로
예시 프롬프트: "DOMAIN\JaneDoe가 \server\share\folder에 액세스할 수 있는 이유는 무엇입니까? 이 권한의 출처는 무엇입니까?"
Get-ResourceAccess
특정 리소스에 누가 접근할 수 있는지 보여줍니다.
매개변수:
resource
: 리소스 경로
예시 프롬프트: "누가 \server\finance에 접근할 수 있나요? 모든 사용자와 그룹을 보여주세요."
Get-UnusedAccess
특정 리소스에 대한 사용하지 않는 액세스 권한이 있는 사용자를 찾습니다.
매개변수:
resource
: 리소스 경로
예시 프롬프트: "지난 1년 동안 \server\hr에 접속한 적이 없는 모든 사용자를 찾으세요."
Get-ShadowAccess
중요한 리소스에 대한 섀도우 접근 권한이 있는 사용자를 찾습니다.
예시 프롬프트: "신용 카드에 대한 섀도 액세스 권한이 있는 모든 사용자를 찾으세요" "sbcloudlab\admins 섀도 액세스 권한을 찾으세요"
운영 도구
Get-RunningJobs
현재 실행 중인 Netwrix Access Analyzer 작업을 확인합니다.
예시 프롬프트: "지금 Access Analyzer 작업이 실행 중인가요? 상태를 보여주세요."
문제 해결
연결 문제
연결 문제가 발생하는 경우:
- 네트워크에서 SQL Server가 실행 중이고 액세스 가능한지 확인하세요.
.env
파일에서 자격 증명을 확인하세요- ODBC 드라이버가 올바르게 설치되었는지 확인하세요
- 자세한 오류 메시지는 로그에서 확인하세요.
Claude 데스크톱 통합
Claude Desktop이 uv
명령을 찾을 수 없는 경우:
- 구성에서
uv
의 전체 경로를 사용하세요(which uv
또는where uv
사용하여 찾으세요) - 구성 변경 후 Claude Desktop을 다시 시작했는지 확인하세요.
- MCP 서버와 관련된 오류 메시지가 있는지 Claude 로그를 확인하세요.
This server cannot be installed
AI 에이전트가 표준화된 인터페이스를 통해 Netwrix Access Analyzer와 상호 작용할 수 있도록 하는 모델 컨텍스트 프로토콜 서버로, 데이터 액세스 위험, 데이터 분류 및 사용자 액세스 패턴에 대한 가시성을 제공하여 조직이 가장 민감한 데이터를 보다 효과적으로 보호할 수 있도록 지원합니다.