Homebrew installato PostgreSQL per l'utilizzo da più account

0

Uso Homebrew per installare PostgreSQL (PG) su un MacBook Air.

admin utente brew install ed PostgreSQL.

Vorrei che un altro utente (account mobile) fosse in grado di utilizzare il database per lo sviluppo di Rails. admin è il proprietario di /usr/local/ ma mobile utente è membro di un gruppo che dispone dell'autorizzazione rwx. brew doctor è felice e l'utente mobile può con successo brew install

Il modo migliore per impostare le autorizzazioni per questo lavoro?

ad esempio, l'esecuzione di initdb /usr/local/var/postgres -E utf8 dall'account admin ha creato un database per l'utente admin. E, ora sembrerebbe, vuole che il PG venga lanciato da quell'utente amministratore.

Mi piacerebbe tanto un account neutro per avviare PG processo o idealmente l'account mobile per essere in grado di avviare e chiudere un'istanza di PG, se necessario.

Il punto in cui PG non deve essere eseguito TUTTO il tempo (LaunchDaemon). Idealmente, è un LaunchAgent nell'account dell'utente mobile.

Pensieri?

    
posta Meltemi 27.03.2013 - 19:02
fonte

1 risposta

1

In base all'output di Postgres, è necessario eseguire il server Postgres come lo stesso utente che crea il database con initdb.

mr-clean:~ smurf$ initdb /usr/local/var/postgres -E utf8
The files belonging to this database system will be owned by user "smurf".
This user must also own the server process.

Ciò significa che lo stesso utente dovrà avviare il processo del server Postgres. Gli altri utenti saranno comunque in grado di avviare il client e collegarsi ad esso, comunque. Quindi devi solo eseguire le attività di "amministrazione" - configurazione e controllo daemon - con quell'account proprietario.

Se vuoi fare tutto con l'account mobile , esegui solo initdb come mobile anziché come admin dopo aver eseguito brew install postgresql come normale. (Non è chi sei brew install come è importante, è chi sei initdb come.) Questo creerà il database e le autorizzazioni rwx su /usr/local/var (non /usr/local ) saranno sufficienti per consentire ciò. Quindi fai tutto il tuo PG come mobile . LaunchAgent dovrebbe funzionare con questo approccio, sebbene non l'abbia provato.

Per consentire a più utenti di gestire in modo efficace il server Postgres (avviare e arrestare il demone), impostarlo fondamentalmente allo stesso modo, con un account postgres dedicato (o mobile ) che entrambi compongono il% iniziale% co_de e porta il server su o giù. Quindi crea un piccolo script su initdb in ssh come localhost ed esegui il comando per portare il server in alto o in basso con lo stesso comando che userai nel caso singolo utente. E configura le chiavi ssh in modo che tutti gli account che vuoi gestire PG possano ssh in come postgres (cioè, inseriscono le loro chiavi pubbliche nel file ~ / .ssh / authorized_keys di Postgres). Ora puoi effettivamente avere più utenti che gestiscono Postgres senza deviare dal modello di utente dedicato del daemon che Postgres si aspetta e giocherellando con i permessi dei file e così via.

Questa tecnica ssh funziona per qualsiasi servizio che deve essere controllato da un account dedicato e generalizza al caso in cui stai eseguendo le tue cose su macchine diverse.

    
risposta data 25.04.2013 - 19:30
fonte

Leggi altre domande sui tag