A production change looks different to the CIO, the CTO, security, the database team, infrastructure, change management and internal audit. Each role's question, how it is answered today and what the product changes are below.
CIO · IT Director
The answer is probably correct. The question is not whether it is true, but what it rests on.
You ask your team. You get the answer "it is under control". That answer is honest and most likely correct.
But that answer is the knowledge of a person, not the output of a system. Ask the same question six months from now, when that person has moved on, and you will not get the same confidence.
The commitment you gave the board rests somewhere you cannot see.
Governance does not invent a new process. It takes the good processes you already have out of personal dependency.
The rule a change was approved under sits inside the record, together with the rule as it stood that day. Even after the rules change, an old record is still read against the rules of its own day.
The answer you give the board then rests on a verifiable record rather than on someone's memory.
CTO · DevOps Manager
If your team hears "governance" and thinks "slower", every version of governance they have met so far did slow them down.
In practice, adding control means adding an approval step. Adding an approval step means waiting. Waiting means the team slows down.
Because that equation is true, one of two things happens: either the control is never added, or it is added and then skipped whenever something is urgent. Both are understandable.
The work still reaches production, but part of it arrives outside the pipeline. What happens outside the pipeline appears in none of the metrics you track.
The difference is this: not every change carries the same approval burden. A direct pipeline connection is not in the product today and is first on the roadmap; what you gain today is that work leaving the pipeline, and manual work, enter the same rule and record model.
The policy can reduce the approval steps for a low risk change. A high risk one stops, and the reason is written into the record. The rule decides, not the person.
Work performed outside the pipeline can be brought into the same scope. This is not a ban; manual intervention is an operational reality. What changes is that the intervention is declared as an emergency or a manual action and enters the same record model together with its justification.
The limit is worth stating plainly: the platform does not detect an intervention that was never declared. The gain is the difference between night work that lands nowhere and night work that becomes a justified record.
CISO · Compliance Manager
Your identity side is probably mature. The gap is not unauthorised access. It is an authorised person acting without a rule.
Identity management is in place. Privileges are defined, access is reviewed, privileged accounts are monitored.
Then a manager asks for some data. An authorised person runs a permitted query, puts the result in a file and sends it. No rule is broken.
Who took which data for what stated reason, which fields went out in the clear, and where the file ended up are nowhere recorded together.
Reading production data is treated as seriously as changing it: request, reason, approval and delivery live in a single record.
Which field is masked stops being a person's decision and becomes the rule's decision. If a field goes out in the clear, that approval is recorded separately.
Evidence is not gathered afterwards. The delivery produces the record, and that record can be verified from outside the system that keeps it. This requires a signing key and an external digest store to be configured; on an unsigned package the verification script reports UNSIGNED.
Database Director · Database Manager · Senior DBA
This page is not a criticism of the team. The opposite: it is about why the knowledge of a team that works well is still fragile.
Someone knows the release order. Someone knows which table must not be touched during business hours. Someone knows which job has to run before which.
That knowledge is not wrong. It was built over years and is often more accurate than any written rule.
The problem is that it cannot be handed over. Written into a document it loses its nuance; left unwritten it leaves with the person.
Governance does not dismiss the team's experience. It turns it into a rule in the system. The release order lives in a definition rather than on one person's screen.
Rollback is prepared with the change. For structural changes the product generates the reverse script from the server's current definition; for statements that modify data the team writes it and the product flags the rollback as incomplete. It stops being a script written at night and becomes part of the plan.
How risk is assessed no longer depends on who is assessing. The same script under the same conditions gets the same answer every time.
Infrastructure Manager
As the number of environments grows, the problem stops being capacity and becomes visibility.
Every server has its own record. Some have a monitoring tool, some have system logs, some have only a backup history.
Answering "which server did this change reach" means looking in several places. The answer is usually found, but it takes time.
Environments drift apart over time. The difference between test and production grows through small interventions nobody planned.
The server becomes a parameter of governance. A query result request can target several servers and the outcome for each is recorded separately; a change request goes to a single server, because there is no shared transaction across servers.
The scope list covers eight paths, and it includes privilege changes and maintenance work. In most organisations those sit outside scope.
Object history shows every request that touched an object through the product. The "current definition on the server" comparison reads the object as it is on the target right now; a change made outside the product can be read in that current definition, but the product does not detect it on its own.
Change Manager
Your change process is probably mature. The gap is not in the process. It is between the output of the process and reality.
A ticket is raised, approval is obtained, an implementation window is agreed, the ticket is closed. The process runs properly.
When the ticket closes, the change is assumed to be applied. That assumption rests on the word of whoever applied it.
Nothing matches what the ticket says against what actually happened in the database. The two live in separate systems and do not know each other.
The ticket number stops being a field on a request and becomes a binding element of the record. If a ticket is required, no request opens without one; if a format is defined, a wrong format is not accepted.
Which objects the script touches, and how, is read from the parse result as an object list and attached to the request and so to its ticket number. The link between the ticket and the work run through the product is therefore in the record.
Open requests touching the same object are listed in the "Active Conflicts" report. A collision becomes visible before it reaches production.
Internal Auditor
If the audited party assembles the evidence, what you receive is not evidence. It is a selection.
The audit plan is set, a sample is drawn, evidence is requested from the relevant team. The team gathers it and you wait.
What arrives is screenshots, printed emails and hand prepared spreadsheets. All of it may be accurate. None of it is independent.
The sample is kept small, because gathering evidence for each item costs the team a week. A small sample means narrow assurance.
Evidence is not gathered afterwards. The action produces it. That also lowers the burden on the audited team, so both sides gain.
Every record carries the rule set that was in force that day. Even after the rules change, an old action is read against the rules of its own day.
Every skipped step is recorded with its reason. An exception stops being invisible and becomes reviewable.
The evidence file can be verified independently of the system that keeps it. You perform the verification rather than being told the result. This requires a signing key and an external digest store to be configured; on an unsigned package the verification script reports UNSIGNED.
That sentence means nothing without a mechanism behind it, so here it is. Every package delivered to you is a zip containing the data itself, an identity file listing the SHA-256 digest of every file in the package, a verification script and, where a signing key is configured, the RSA signature over that identity file and the public key that checks the signature.
Package verification runs on your machine. Nothing connects to the product and nothing goes over the network. The PowerShell that ships with Windows, or openssl, is enough.
The records themselves live in a SQL Server 2022 append-only ledger table. The ledger digest is taken every hour by default; where a signing key and an external output folder are configured, it is signed and written to the organisation's own immutable store. If these two settings are not made there is no outside digest to compare against and the verification is not independent. On a copy restored from backup in the organisation's own environment, you run SQL Server's own procedure against those digests or watch it being run; the backup does not leave the organisation. On the same copy you also see which database account wrote each record. The period package reconciles every request of the period from two separate sources, so the question "did I see them all" has an answer too.
A pilot with a limited scope that answers your role's question in your own environment.