By role

Each role has its own question

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

What are you relying on when you tell the board the database side is under control?

The answer is probably correct. The question is not whether it is true, but what it rests on.

How this question is answered today

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.

What that answer costs

Two weeks lost before every audit. That time is charged to no project and appears in no report.
Confidence lost when a key person leaves. The new person cannot give the same answer, because the answer was never in the system.
After an incident, being unable to show the control was working that day. It may well have been. There is no proof.
The same risk assessed differently by different people. Both defensible, neither recorded.

What changes with the product

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.

You know exactly what you are relying on when you tell the board the database side is under control.

CTO · DevOps Manager

How do you add control without slowing delivery?

If your team hears "governance" and thinks "slower", every version of governance they have met so far did slow them down.

How this question is answered today

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.

What that answer costs

You do not know your pipeline's coverage. How much of the work reaching production actually goes through it is never measured.
Two changes carrying the same risk get different treatment in different hands. That inconsistency looks like nobody's mistake.
Low risk changes carry the same approval burden as high risk ones. Both sides end up unhappy.
After an incident, the answer to "why did this not go through the pipeline" has to be reconstructed.

What changes with the product

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.

Speed is not traded for control; the approval burden follows the risk, and work that leaves the pipeline has a place in the same record model.

CISO · Compliance Manager

Is access to production data taken as seriously as identity?

Your identity side is probably mature. The gap is not unauthorised access. It is an authorised person acting without a rule.

How this question is answered today

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.

What that answer costs

The personal data access trail is reconstructed after the fact. A reconstructed trail is not evidence.
The masking decision is left to a person. The same column can go out masked in one delivery and open in the next.
When data leaves the organisation, there is no record showing the destination address was ever approved.
In an incident investigation the scope cannot be set: if you do not know who saw what, you cannot know the impact.

What changes with the product

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.

Access to production data is treated as seriously as identity, and the trail for personal data access creates itself.

Database Director · Database Manager · Senior DBA

Where does your team's knowledge live?

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.

How this question is answered today

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.

What that answer costs

The most senior person cannot take leave comfortably. When they do, the release is postponed or a risk is taken.
The rollback script written at 02:10. It worked that night. Nothing guarantees it will work next time.
A new joiner learning by asking questions for six months. That period is in nobody's plan.
In an audit, answering "why was it done this way" with personal experience.

What changes with the product

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.

Team knowledge moves from people into the system, night interventions stop being improvised, and you are less likely to be called while on leave.

Infrastructure Manager

Can you read what changed on which server in one place?

As the number of environments grows, the problem stops being capacity and becomes visibility.

How this question is answered today

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.

What that answer costs

Environment drift. It is the usual reason a change that worked in test fails in production.
When one request targets several servers, tracking which of them succeeded one by one.
One server sitting outside the governance scope. It is usually the oldest and most critical one.
Privilege and role changes not counting as changes. Invisible in the record, asked about in the audit.

What changes with the product

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.

What changed on which server through the product is readable in one place. The product only knows the servers defined in it; completeness of scope is shown by comparing the organisation's server inventory with the product's server list.

The two screens where access lives

Role permissions screen where request, approval, execution, visibility and settings rights are switched per role
Roles and permissions Requesting, approving, executing and managing settings are switched per role. The check is enforced on the server rather than in the interface.
Users screen with role assignment, local or corporate directory authentication and bulk user import from CSV
Users and bulk import A local account or the corporate directory. At setup the whole team is imported from CSV, through the same checks as adding one by one.

Change Manager

Do the ticket and the database agree?

Your change process is probably mature. The gap is not in the process. It is between the output of the process and reality.

How this question is answered today

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.

What that answer costs

A closed ticket and a half applied change. It surfaces three weeks later and nobody can find the first mistake.
A change with no ticket. Done during an emergency, ticketed afterwards, with content that does not quite match reality.
In an audit, being unable to explain the difference between ticket and record. Both look correct and they do not agree.
Two open requests touching the same object, moving forward unaware of each other.

What changes with the product

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.

The link between the ticket and the work run through the product sits in the record and is not assembled after the fact.

Internal Auditor

Do you request evidence, or do you download it?

If the audited party assembles the evidence, what you receive is not evidence. It is a selection.

How this question is answered today

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.

What that answer costs

Independence is compromised. The audited party selects the evidence and you review what was selected.
If the rules changed, old records are read incorrectly. Yesterday's action cannot be judged by today's rule.
Without a reason for a skipped approval step, you cannot tell whether the exception was legitimate.
You have to raise a finding because no record shows the control was working. It may well have been.

What changes with the product

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.

With an auditor account you download request files and the period package yourself, and you choose the sample. For independent verification you ask the organisation for the public key fingerprint, the digest files from the external store and a restored copy.

How you perform the verification

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.

Let us talk about your organisation

A pilot with a limited scope that answers your role's question in your own environment.