I'm particularly interested in data changes, not schema migrations. Most teams I've worked on just gave production write access to all engineers who were on call. Is this the norm?
For example, if a support request came in (either due to a bug or user error) and there wasn't an existing admin endpoint to make the necessary change, the on-call engineer would write a SQL UPDATE statement to run directly in the production db.
A few issues I see with this: (1) A bad query (accidental or malicious) could have serious consequences (data loss and/or service interruption). (2) There is not an easy way (afaik) to audit which changes were made in this manner or why they were made. This also seems like it could bring compliance issues.
How have you seen changes like this handled - what tools/processes are seen as best practice?