rls-check について
rls-checkはSupabaseの行レベルセキュリティ設定を分析し、テーブルごとの公開リスクを非技術者向けにアラビア語で説明します。行データではなくポリシーのメタデータを読み取り、DBキーや接続情報は不要です。
主な機能
- 01テーブルをアクセスリスク別に分類
- 02結果をアラビア語で説明
- 03ポリシー、権限、列情報のみ参照
- 04SQLクエリと結果分析を提供
- 05コマンドラインとMCPに対応
活用シーン
- 01公開前にSupabaseのアクセス規則を確認
- 02創業者へのデータ公開リスクの説明
- 03CIステップでRLSチェックを実行
MCP 対応
MCPサーバーは、読み取り専用クエリを返すツールと、その結果を説明するツールを提供します。アシスタントは公式Supabase MCP経由でクエリを実行でき、rls-check自体はデータベース接続情報を保持しません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
2掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
Supabase の RLS チェック:顧客データを読めるのは誰ですか?
ご自身の Supabase SQL Editor で実行する読み取り専用クエリと、結果をテーブルごとに説明するアナライザーです。
- 公開(anon)キーを持つ誰もが読み取りや変更をできるテーブル
- サインイン済みのユーザーが、他のユーザーの行を読み取れるテーブル
- ロックされているテーブルと、安全なテーブル
結果は技術に詳しくない創業者向けのアラビア語で記載され、英語のラベル(exposed、check it、
locked、safe)が付いています。各項目から、修正方法を解説するアラビア語のレッスンにアクセスできます。
- データは読み取りません。 クエリが読み取るのは、テーブルの説明情報のみです。RLS の状態、ポリシー、権限、カラム名が対象です。行は一切読み取りません。
- キーやパスワードは不要で、データベースへの接続も行いません。クエリはご自身で実行するか、エージェントが公式の Supabase MCP を通じて実行します。
- muhandis.online/tools/rls-check のブラウザツールと同じチェックです。
lib/rls-check.jsはサイトのアナライザーで、バイト単位でそのままコピーしたものです。
使い方
1. ブラウザで使う(最も簡単)
チェックページを開き、クエリをコピーして Supabase で実行し、結果を貼り付けます。すべてブラウザ内で行われ、外部に送信されることはありません。
2. コマンドラインから使う
npx muhandis-rls-check query > query.sql # the query: run it in your SQL Editor
npx muhandis-rls-check result.json # paste the result cell into a file; this explains it
npx muhandis-rls-check result.json --json # the same explanation as JSON
テーブルが公開されている場合は 1 で終了するため、CI のステップとして使用できます。
3. AI アシスタント向け(MCP)
Claude、Cursor、または任意の MCP クライアントに追加してください。アシスタントがクエリを実行し(たとえば公式の Supabase MCP を通じて)、このサーバーが結果を説明します。サーバー自体は接続情報を保持しません。
{
"mcpServers": {
"muhandis-rls-check": { "command": "npx", "args": ["-y", "muhandis-rls-check", "mcp"] }
}
}
ツール:rls_check_query はクエリを返し、rls_check_explain は結果を説明します。
4. Claude のスキルとして使う
同じチェックを行うClaude スキルです。Claude がクエリを提示し、貼り付けた結果を
skills/rls-check/scripts/rls_check.py を通じて解析します。これはアナライザーの Python 版で、テストにより
lib/rls-check.js と同じ出力になることが保証されています。キーは不要で、ネットワークへの接続も行いません。
- Claude アプリ: 最新リリースから
rls-check.zipをダウンロードし、 Customize > Skills でアップロードして有効にします。コード実行を有効にする必要があります。 - Claude Code:
/plugin marketplace add Muhandis-online/rls-check
/plugin install rls-check@muhandis
チェック項目
| ラベル | アラビア語 | 意味 |
|---|---|---|
exposed | 公開 | RLS が無効で、訪問者ロールに権限が付与されている場合。個人情報カラムを含むテーブルに、条件が true のポリシーがある場合。訪問者が読み取れる security_invoker のないビューがある場合。または、すべてのユーザーに開かれた更新ポリシーまたは削除ポリシーがある場合 |
check it | 確認 | 商品リストのように、個人情報カラムを含まない、誰もが読み取れるデータがある場合。または、お問い合わせフォームのように、サインインなしで挿入できる場合 |
locked | ロック済み | ポリシーが設定されていない状態で RLS が有効になっている場合、または権限が付与されていない場合:アプリからアクセスできません |
safe | 安全 | auth.uid() を通じて行の所有者に紐づけられたポリシーがある場合 |
個人情報カラムは、カラム名(email、phone、user_id、iban、national、iqama など)から判定されます。
制限事項
このツールは確認できるルールをチェックするもので、テストに代わるものではありません。チェック後、2 つのアカウントでサインインし、それぞれが自分の行だけを参照できることを確認してください。Supabase 独自の Security Advisor でも、関連する問題(RLS の無効化、security-definer ビュー、許可的なポリシー)を検出できます。このツールは、製品の所有者向けにアラビア語で説明を加え、各項目の修正方法へのリンクを提供します。
公開されたテーブルが見つかり、エンジニアと一緒に修正したい場合は、muhandis.online/services/fixをご覧ください。
サウジアラビアおよび GCC の企業向けソフトウェア会社 Muhandis が作成しました。MIT ライセンス。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。