All posts

Separation of Duties with Pgcli: Protecting Your Database from Costly Mistakes

That’s the risk when separation of duties isn’t baked into your workflow. Pgcli is powerful. Too powerful when every developer, tester, and admin shares the same permissions. Clean division between who can read, who can write, and who can alter structure is not optional—it’s survival. With Pgcli, separation of duties starts by creating clear user roles in PostgreSQL. One role for read-only queries. One role for schema changes. One for maintenance. Then configure Pgcli to connect using those rol

Free White Paper

DPoP (Demonstration of Proof-of-Possession) + Database Access Proxy: The Complete Guide

Architecture patterns, implementation strategies, and security best practices. Delivered to your inbox.

Free. No spam. Unsubscribe anytime.

That’s the risk when separation of duties isn’t baked into your workflow. Pgcli is powerful. Too powerful when every developer, tester, and admin shares the same permissions. Clean division between who can read, who can write, and who can alter structure is not optional—it’s survival.

With Pgcli, separation of duties starts by creating clear user roles in PostgreSQL. One role for read-only queries. One role for schema changes. One for maintenance. Then configure Pgcli to connect using those roles, not generic superuser accounts. This stops casual commands from turning into catastrophic data loss.

The best setups go further. They use auditing to log every Pgcli session. They enforce MFA on database accounts. They disable superuser login for daily work. They keep production direct access off-limits, funneling all interaction through controlled staging and review flows. Pgcli works seamlessly in these boundaries when paired with PostgreSQL’s role and privilege features.

Continue reading? Get the full guide.

DPoP (Demonstration of Proof-of-Possession) + Database Access Proxy: Architecture Patterns & Best Practices

Free. No spam. Unsubscribe anytime.

Separation of duties with Pgcli also means separating environments. Local development shouldn’t point to production data. Staging should mirror production structure but hold anonymized or synthetic records. Sensitive operations should require a second set of eyes—either via code review before migrations or pre-approved maintenance windows.

Every team that ignores these steps pays eventually. For some, it’s a minor outage. For others, it means unrecoverable loss. With Pgcli, the line between speed and safety can be razor-thin unless you set the rules.

If you want to see a streamlined, live example of how separation of duties can be enforced without killing developer velocity, spin it up on hoop.dev. In minutes, you’ll see a working model where Pgcli plays by the rules—and everyone sleeps better.

Open source

Save the open-source gateway for agent data access

Hoop is MIT-licensed infrastructure for controlling how AI agents reach production data. Star hoophq/hoop so you can inspect it, deploy it, or share it when your team starts governing agent access.

Star and save the repo →More posts