Re: Manage PostgreSQL Database for GITLAB Application? - Mailing list pgsql-general

From Adrian Klaver
Subject Re: Manage PostgreSQL Database for GITLAB Application?
Date
Msg-id eca9525c-9fc9-b7ff-8f2d-4bf5528bd8eb@aklaver.com
Whole thread Raw
In response to Re: Manage PostgreSQL Database for GITLAB Application?  ("Hilbert, Karin" <ioh1@psu.edu>)
List pgsql-general
On 1/21/19 11:23 AM, Hilbert, Karin wrote:
> Thanks Stephen,
> 
> 
> I'm under the gun to get this database restored & then tested with the 
> application.
> 
> I'll try changing the schema back from public to the original schema 
> (the same as the application user account name).  If that doesn't work 
> for the application, then I'll try leaving the schema as public.

Would it not be easier to ask the application developer what his 
permissions model is. I can see a game of Whack-a-Mole ahead otherwise.

> 
> I'll definitely remove the statements revoking privileges from the 
> dbowner & change the grant statements back to the application account 
> instead of PUBLIC.
> 
> 
> The only access to the database is from the gitlab application (I guess 
> that's what you mean by "I'd definitely have the database be dedicated 
> to gitlab.")
> 
> 
> I make the developer have his application connect in with the 
> application user account for normal operations.  When his application 
> undergoes an upgrade, it needs to also be able to update the database.  
> I always made him connect with the dbowner account for this & then 
> switch the connection back the application user account when the upgrade 
> was done.
> 
> 
> Thanks for confirming my thoughts about public.  I was starting to 
> second guess myself.
> 
> 
> May I also ask your thoughts regarding something else for the gitlab 
> database?
> 
> We have two instances; one for development & one for production.  When 
> we originally created the databases, we had separate names for the 
> database, schema & application user:
> 
> 
> dbname_dev/dbname_prod
> 
> sname/snamep
> 
> username/usernamep
> 
> 
> The other year, we had to restore the prod database backup to dev & that 
> changed the schema name.  I was thinking that it would be better have 
> the same names used for dev & prod so that restores from one environment 
> to another would be easier.  (That's a standard that our DBA team 
> employs for our SQL Server databases.)  Does it make sense to also 
> employ that standard for PostgreSQL databases?  Is there any reason to 
> keep the names different between the environments?
> 
> 
> Thanks again for your help.
> 
> Regards,
> 
> Karin
> 
> ------------------------------------------------------------------------
> *From:* Stephen Frost <sfrost@snowman.net>
> *Sent:* Monday, January 21, 2019 1:53:00 PM
> *To:* Hilbert, Karin
> *Cc:* pgsql-general@lists.postgresql.org
> *Subject:* Re: Manage PostgreSQL Database for GITLAB Application?
> Greetings,
> 
> * Hilbert, Karin (ioh1@psu.edu) wrote:
>> Does anyone manage a PostgreSQL database for a GITLAB application?
> 
> Yes.
> 
>> I have PostgreSQL v9.6 installed on my server & we are trying to migrate a GITLAB database there.
>> 
>> The developer says that we need to use the public schema instead of the schema of the same name as the application
user.
> 
> Not sure this is really required but it also shouldn't hurt anything
> really- I'd definitely have the database be dedicated to gitlab.
> 
>> The schema that he provided me to restore also is revoking all privileges from the database owner & instead granting
allprivileges to PUBLIC.
 
> 
> That's terrible.
> 
>> Has anyone else run across this?  I always thought that granting privileges to PUBLIC is a bad security thing to
do?
> 
> Yes, that's bad from a security perspective and shouldn't be necessary.
> GRANT rights to the user(s) the application logs into, don't just grant
> them to PUBLIC- that would allow anyone on the system to have access.
> 
>> If anyone can offer any thoughts regarding this, it would be greatly appreciated.
> 
> Is this developer the only one who is going to be using this gitlab
> instance..?  Sounds like maybe they want direct database access which
> would only make sense if they're the one running it and should have full
> access- but even then, I'd create a role and grant access to that role
> and then grant them that role, if that's the requirement.  GRANT'ing
> things to public isn't a good idea if you're at all concerned about
> security.
> 
> Thanks!
> 
> Stephen


-- 
Adrian Klaver
adrian.klaver@aklaver.com


pgsql-general by date:

Previous
From: "Hilbert, Karin"
Date:
Subject: Re: Manage PostgreSQL Database for GITLAB Application?
Next
From: Adrian Klaver
Date:
Subject: Re: Manage PostgreSQL Database for GITLAB Application?