3

Ich erstelle einen PostgreSQL-Benutzer für ein internes Dashboard, wo ich möchte, dass der Benutzerzugriff auf die Datenbank standardmäßig schreibgeschützt ist.Wie kann man Ansible verwenden, um die schreibgeschützte PostgreSQL-Rolle festzulegen?

ich einige der Forschung getan, und es scheint ein wenig komplex zu sein, ein Read-Only-Benutzer zu erstellen, die auch Zugriff auf alle neuen Tabellen erbt, materialisierte Ansichten etc.

Also ich denke, die einfachste Sache ist nur zum stellen:

ALTER USER readuser SET default_transaction_read_only = on; 

Wie stelle ich das mit den Ansible PostgreSQL Modulen ein?

Ich bin mir nicht sicher, ob ich das postgresql_privs oder postgresql_user Modul verwenden sollte. Ich habe versucht, mit verschiedenen Werten für das priv Attribut zu experimentieren, konnte aber nichts zum Arbeiten bringen.

Ich bin mir bewusst, dass dies nicht schreibgeschützt garantiert ist, da der Benutzer nur den Typ der Transaktion zur Laufzeit ändern konnte. Aber für meinen Anwendungsfall ist das kein Problem, da Sicherheit kein Problem darstellt. Ich möchte nur vor unwissenden Benutzern schützen, die versehentlich Daten ändern. Wenn jemand über ausreichende Kenntnisse verfügt, um seine Transaktion zu ändern, nehme ich eher an, dass sie wissen, was sie tun und einen legitimen Grund dafür haben.

Antwort

0

Ich bin mir nicht sicher, ob ich das postgresql_privs oder postgresql_user Modul verwenden sollte. Ich habe versucht, mit verschiedenen Werten für das priv-Attribut zu experimentieren, konnte aber nichts zum Arbeiten bekommen.

Haben Sie versucht, privs zu widerrufen ?:

# REVOKE INSERT, UPDATE ON ALL TABLES IN SCHEMA public FROM reader 
# "public" is the default schema. This also works for PostgreSQL 8.x. 
- postgresql_privs: > 
    db=library 
    state=absent 
    privs=INSERT,UPDATE 
    objs=ALL_IN_SCHEMA 
    role=reader 

Hinweis:

Um für ein bestimmtes Objekt, setzen Zustand Gegenwart und grant_option zu nicht nur GRANT OPTION widerrufen (siehe Beispiele http://docs.ansible.com/ansible/postgresql_privs_module.html).

Beachten Sie, dass, wenn Privilegien von einer Rolle R Widerruf kann diese Rolle noch Zugriff über Privilegien jede Rolle R gewährt hat, ist ein Mitglied der einschließlich PUBLIC.

Beachten Sie, dass wenn Sie Privilegien von einer Rolle R widerrufen, tun Sie dies als Benutzer über Login angegeben. Wenn R von einem anderen Benutzer ebenfalls die gleichen Berechtigungen erteilt wurden, kann R weiterhin über diese Berechtigungen auf Datenbankobjekte zugreifen.

Verwandte Themen