Man I don't regret leaving this behind at my last job. You start out by doing someone a one-off like "sure I can pull the top 5 promotional GICs broken down by region for your blog article - I love supporting my co-workers!"
Then requests become increasingly esoteric and arcane, and insistent.
You try to build a simple FE to expose the data for them, but you can't get the time approved so you either have to do it with OT or good ol' time theft, and even then there's no replacement for just writing SQL, so you'll always be their silver bullet.
At that point you teach them how to do it themselves. Isn't there a way to give them an account that only has read access so they can't inadvertently screw up the database?
I like that idea, and it actually did work for our Marketing guy (Salesforce has a kind of SQL). Near the end there, I just had to debug a few of his harder errors, or double check a script that was going to be running on production.
Never thought of it for Postres or Mysql, etc, but I suppose there's got to be an easy enough way to get someone access
In Oracle you'd just set up a user that has limited access and give them those credentials. Creating a few views that pulls in the data they want is a bonus.