Back to Articles list
Dev & AIPublished Aug 1, 2026
SHARE

Supabase में Row Level Security (RLS) का Status Terminal से कैसे Check करें? — Complete Guide

Terminal से Supabase की Row Level Security (RLS) का Status आसानी से Check करें। इस Guide में psql की मदद से RLS Verify करना, Policies देखना और अपने Database की Security Audit करना सीखें।
Supabase में Row Level Security (RLS) का Status Terminal से कैसे Check करें? — Complete Guide

अगर आपका प्रोजेक्ट Google AntigravityCursorWindsurfVS Code, या किसी भी AI-IDE की मदद से बनाया गया है और Backend के लिए Supabase इस्तेमाल हो रहा है, तो एक समय ऐसा ज़रूर आएगा जब आपको यह Verify करना होगा कि आपकी Database Tables पर Row Level Security (RLS) सही तरीके से Enabled है या नहीं।

कई बार AI Assistant (जैसे Gemini FlashClaude, या ChatGPT) लाइव Database को Scan या Security Audit करने से मना कर देते हैं क्योंकि उनके पास आपके Database का Direct Access नहीं होता। ऐसी स्थिति में Terminal के माध्यम से RLS Status Check करना सबसे Reliable और Accurate तरीका माना जाता है।

इस Guide में हम शुरुआत से अंत तक पूरा Process समझेंगे।

इस Guide में क्या सीखेंगे?

  • कौन-से Environment Variables की आवश्यकता होती है

  • psql को पहली बार कैसे Install करें

  • Terminal से सभी Tables का RLS Status कैसे देखें

  • किन Tables पर RLS Enabled नहीं है, यह कैसे पता करें

  • Database Policies कैसे Check करें

  • anon Role किन Tables को Access कर सकती है, यह कैसे Verify करें

Part 1: RLS Check करने के लिए कौन-से Environment Variables चाहिए?

RLS Status Check करने के लिए आपको केवल एक Direct PostgreSQL Connection String की आवश्यकता होती है।

अधिकांश Projects में यह आपकी .env या .env.local फ़ाइल में पहले से मौजूद होती है।

सामान्यतः इसका नाम इनमें से कोई एक हो सकता है—

  • DIRECT_URL

  • DATABASE_URL

  • POSTGRES_URL_NON_POOLING

Note: यदि आप DATABASE_URL का उपयोग कर रहे हैं, तो सुनिश्चित करें कि उसमें pgbouncer=true न हो।

Direct Connection String का Format

postgresql://postgres:[PASSWORD]@db.[project-ref].supabase.co:5432/postgres

Connection String के प्रत्येक भाग का अर्थ

Componentविवरण
postgresDefault PostgreSQL Username
[PASSWORD]Database Password
db.project-ref.supabase.coआपके Supabase Project का Database Host
5432Direct PostgreSQL Port
postgresDefault Database Name

Direct Connection और Pooled Connection में अंतर

Supabase दो प्रकार के Database Connections उपलब्ध कराता है।

Connection TypePortकब उपयोग करें
Direct Connection5432Terminal, psql, Migration, Database Inspection
Pooler (PgBouncer)6543Application Runtime एवं High Connection Load

यदि आपकी Connection String में—

  • pgbouncer=true

  • या Port 6543

दिखाई देता है, तो वह Pooled Connection है।

ऐसी Connection String को psql के साथ उपयोग करने पर अक्सर यह Error दिखाई देती है—

invalid URI query parameter: "pgbouncer"

इसलिए RLS Check करने के लिए हमेशा Direct Connection (Port 5432) का ही उपयोग करें।

यदि Direct URL उपलब्ध न हो तो क्या करें?

Supabase Dashboard खोलें और नीचे दिया गया Path Follow करें—

Project Settings → Database → Connection String

यहाँ आपको सामान्यतः दो विकल्प दिखाई देंगे—

  • Session / Transaction Pooler (6543)

  • Direct Connection (5432)

हमेशा Direct Connection वाली String ही Copy करें।

उदाहरण—

DIRECT_URL="postgresql://postgres:[password]@db.xxxxx.supabase.co:5432/postgres"

क्या अन्य Environment Variables की आवश्यकता है?

नहीं।

नीचे दिए गए Variables Application चलाने के लिए आवश्यक होते हैं, लेकिन RLS Check करने के लिए नहीं।

  • NEXT_PUBLIC_SUPABASE_URL

  • NEXT_PUBLIC_SUPABASE_ANON_KEY

  • SUPABASE_SERVICE_ROLE_KEY

Part 2: पहली बार psql Install कैसे करें?

यदि Terminal में यह Error आती है—

command not found: psql

तो इसका अर्थ है कि आपके System में PostgreSQL Client Install नहीं है।

यह Setup केवल एक बार करना होता है।

Step 1 — PostgreSQL Client Install करें

brew install libpq

Step 2 — यदि Homebrew Permission Error आए

यदि आपको ऐसा Error दिखाई दे—

opt/homebrew is not writable

तो पहले Permission ठीक करें—

sudo chown -R $(whoami) /opt/homebrew

Mac आपका Login Password पूछेगा।

Password दर्ज करके Enter दबाएँ।

इसके बाद Install Command दोबारा चलाएँ—

brew install libpq

Step 3 — psql को PATH में जोड़ें

libpq Install होने के बाद भी कई बार psql सीधे उपलब्ध नहीं होता।

इसे PATH में जोड़ने के लिए—

echo 'export PATH="/opt/homebrew/opt/libpq/bin:$PATH"' >> ~/.zshrc source ~/.zshrc

Step 4 — Installation Verify करें

psql --version

यदि Output कुछ इस प्रकार दिखाई दे—

psql (PostgreSQL) 18.4

तो आपका Setup सफलतापूर्वक Complete हो चुका है।

अब भविष्य में किसी भी Project के लिए दोबारा Install करने की आवश्यकता नहीं होगी।

Part 3: Terminal से RLS Status कैसे Check करें?

अब Actual Security Verification शुरू करते हैं।

Step 1 — Project Folder खोलें

Terminal में अपने Project के Root Directory पर जाएँ।

यहीं आपकी .env फ़ाइल मौजूद होनी चाहिए।

Step 2 — Database URL Load करें

यदि Variable का नाम DIRECT_URL है—

export $(grep DIRECT_URL .env | xargs)

यदि आपके Project में Variable का नाम अलग है, जैसे DATABASE_URL, तो उसी नाम का उपयोग करें।

Step 3 — सभी Tables का RLS Status देखें

psql "$DIRECT_URL" -c "SELECT tablename, rowsecurity FROM pg_tables WHERE schemaname = 'public' ORDER BY tablename;"

Output का अर्थ

ValueMeaning
tRow Level Security Enabled
fRow Level Security Disabled

यदि किसी Table के सामने t दिखाई देता है, तो उस Table पर RLS Enabled है।

यदि f दिखाई देता है, तो वह Table अभी Protected नहीं है और उस पर Security लागू करना आवश्यक हो सकता है।

Step 4 — केवल Unprotected Tables देखें

यदि आप केवल उन Tables की सूची देखना चाहते हैं जिन पर RLS Enabled नहीं है—

psql "$DIRECT_URL" -c "SELECT tablename FROM pg_tables WHERE schemaname='public' AND rowsecurity=false;"

यदि Output में यह दिखाई दे—

(0 rows)

तो इसका अर्थ है कि Public Schema की सभी Tables पर RLS Enabled है।

Step 5 — सभी RLS Policies देखें

यदि आप यह जानना चाहते हैं कि किस Table पर कौन-सी Policy लागू है—

psql "$DIRECT_URL" -c "SELECT tablename, policyname, roles, cmd FROM pg_policies WHERE schemaname='public' ORDER BY tablename;"

इस Query से आपको प्रत्येक Table की Policy, Allowed Roles और Allowed Commands दिखाई देंगे।

Step 6 — anon Role का Access Verify करें

यह सबसे महत्वपूर्ण Security Check माना जाता है।

इससे पता चलता है कि बिना Login किए Public Users किन Tables को Access कर सकते हैं।

psql "$DIRECT_URL" -c "SELECT tablename, policyname, cmd, qual FROM pg_policies WHERE schemaname='public' AND 'anon'=ANY(roles) ORDER BY tablename;"

किन Tables का anon Role में दिखाई देना सही नहीं है?

यदि आपकी Application में नीचे जैसी Sensitive Tables हैं—

  • users

  • profiles

  • subscribers

  • payments

  • orders

  • admin_sessions

  • bookings

तो सामान्यतः इन Tables का anon Role में दिखाई देना उचित नहीं माना जाता।

यदि ये इस List में नहीं हैं, तो इसका अर्थ है कि Public Users सीधे उनका Data Access नहीं कर सकते।

Bonus Tip

यदि किसी Command का Output Terminal में बहुत लंबा हो जाए और नीचे (END) दिखाई दे, तो घबराएँ नहीं।

बस Keyboard पर—

q

दबाएँ।

आप तुरंत Page Mode से बाहर आ जाएँगे।

निष्कर्ष (Conclusion)

Supabase Project की Security Verify करने का सबसे आसान और भरोसेमंद तरीका Terminal के माध्यम से RLS Status Check करनाहै।

यदि आपके पास सही Direct PostgreSQL Connection String मौजूद है, तो केवल कुछ psql Commands की सहायता से आप आसानी से यह जान सकते हैं—

  • कौन-सी Tables पर RLS Enabled है।

  • कौन-सी Tables अभी भी Unprotected हैं।

  • कौन-सी Policies लागू हैं।

  • Public (anon) Users किन Resources को Access कर सकते हैं।

यदि आप नियमित रूप से SupabasePostgreSQLNext.jsAI-Generated Projects, या Google Antigravity के साथ काम करते हैं, तो यह Security Check आपके Development Workflow का स्थायी हिस्सा होना चाहिए। इससे Production में जाने से पहले संभावित Security Issues का पता लगाया जा सकता है और आपका Database अधिक सुरक्षित बना रहता है।

---ends here---

Kapesh

Written by Kapesh

Founder & Editor

Kapesh is the founder and technical architect behind One2Tech. He specializes in macOS internals, Apple automation workflows, developer environments setup, and local database design. He writes verified, high-fidelity tutorials to simplify complex computing workflows.

Subscribe to One2Tech Insights

Stay updated with our latest development and tech guides.

Related Publications

Dev & AI
YouTube API Key vs OAuth 2.0: क्या अंतर है और किसका इस्तेमाल कब करें?
Read Article
Jul 31, 2026

YouTube API Key vs OAuth 2.0: क्या अंतर है और किसका इस्तेमाल कब करें?

जानिए YouTube API Key और OAuth 2.0 में क्या अंतर है। Public Data, Video Upload, Channel Management, Login with Google, OAuth Flow और Practical Use Cases को आसान भाषा में समझें।

Dev & AI
Google APIs Free Tier Guide 2026: कौन-सी API किस काम आती है?
Read Article
Jul 31, 2026

Google APIs Free Tier Guide 2026: कौन-सी API किस काम आती है?

Gemini API, Cloud Run, Firestore, Google Sheets API, Gmail API, Maps Platform और अन्य Google APIs का Free Tier, Use Cases और Practical Comparison जानें।