in src/dma/collector/workflows/readiness_check/_postgres/main.py [0:0]
def _check_pglogical_privileges(self, db_name: str) -> list[str]:
err = self._check_pglogical_schema_usage_privilege(db_name)
if err is not None:
return [err]
result = self.local_db.sql(
"select has_tables_select_privilege, has_local_node_select_privilege, has_node_select_privilege, has_node_interface_select_privilege from collection_postgres_pglogical_privileges where database_name = $db_name",
params={"db_name": db_name},
).fetchone()
errors: list[str] = []
if result is None:
errors.append("Empty result reading pglogical privileges for the user")
else:
if not result[0]:
errors.append("user doesn't have SELECT privilege on table pglogical.tables")
if not result[1]:
errors.append("user doesn't have SELECT privilege on table pglogical.local_node")
if not result[2]:
errors.append("user doesn't have SELECT privilege on table pglogical.node")
if not result[3]:
errors.append("user doesn't have SELECT privilege on table pglogical.node_interface")
return errors