Change governance

Database Change Governance

Every script bound for production goes through the same gate: validation, risk band, policy, approval, execution and audit. The decision rule is written down and the evidence comes out of the work itself.

SQL Server PostgreSQL Oracle

Change management and change governance are not the same thing

Change management organises how a change is planned, carried and released. Its question is how the work gets to production. Ticketing systems, delivery pipelines and schema migration tools answer that question.

Change governance organises whether the work is allowed through and how you prove that it was. Its question is which rule assessed the work, who allowed it, and on what basis you claim the text that ran is the text that was approved. It has three components and all three must be written down: the rule, the gate and the evidence.

The two disciplines are not alternatives. SQL Change Guard does not replace your management tools; it answers the second question they leave open. We call the approach that brings database change and production data access under one roof Database Operations Governance.

The path of a change request

1 Request A request can carry several scripts and several target servers. A ticket number can be made mandatory and its format is checked with a regular expression.
2 Validation The script is parsed with the parser of its target database type. This is real grammar analysis, not text searching.
3 Risk The highest tier among the triggered rules sets the request band. Findings are not summed or averaged.
4 Policy The policy matching the server, the environment and the request type is selected. The steps come from that policy.
5 Approval Each step is closed by a user at the required role level. A locked step is never skipped.
6 Notification The approval step that is now due, the approval, a rejection and the execution result are notified to the people concerned. Sends are queued and recorded.
7 Execution The application runs the script. Result, duration, affected rows and any error message are recorded.
8 Audit Every step goes into the signed audit trail and into the per request evidence file.
Validation

When a script is stopped

There are three brakes and they are not equally hard.

Syntax error

If the script cannot be parsed, the request is never saved. This brake cannot be turned off.

Save blocking rule

If a standard marked "blocks save" is triggered, no record is created. An UPDATE without a WHERE clause ships marked this way.

Finding that needs confirmation

For other high tier findings the user is shown an acknowledgement, and the request is only saved on the second submission.

The rule set belongs to you. A catalogue of eighty eight SQL standards ships with the product. Each can be switched on or off, its tier changed, and the database types it applies to selected. Screen: Settings, SQL Standards.

Risk

How the risk band is decided

Every SQL standard carries one of five tiers: Info, Low, Medium, High, Critical. A request's band is the highest tier among the rules it triggered.

Nothing is averaged and no points are summed. The reason is simple: the average of fifty small findings hides a single critical one. A worst case approach prevents that.

The screen also shows a number between 0 and 100. That number is a readable projection of the band and is used in no gate decision. Decisions belong to the band and the rule flags.

Rules that can never be skipped. Six rules ship with this flag: dropping a critical object, accessing a critical object, schema change on a critical object, running an operating system command, permission changes and linked server usage. When one is triggered, the machine cannot execute the request on its own and the approval step tied to that rule cannot be skipped.

Policy

How approval steps are generated

Approval is not a habit. It is a written rule, and it is frozen onto the request at save time.

Which policy applies

Candidate policies are searched in this order of specificity: a specific server, then the environment, then global. When several candidates sit at the same level, the priority value decides. If a request spans several servers, each is resolved separately and the strictest one wins.

The six levers on a step

The approver role; triggering on specific rule keys; triggering at a risk band threshold; skipping at a low band; skipping when the requester's own role is high enough; and a lock that makes the step wait under all conditions.

The point most often misread. Only two fields make a step conditional: the rule key and the band threshold. Once a conditional step is triggered it cannot be skipped by seniority; even the most senior user waits. A plain base step, by contrast, is skipped when the requester's own role is at or above the approver role.

Separation of duties

Approving your own request

When switched off, a requester can neither approve nor execute their own request.

Approver cannot execute

When switched off, whoever closed a step cannot execute that same request.

Distinct approver

When switched on, one person can close only one step on the same request.

The effective value of these three settings is frozen when the request is saved. A later change does not rewrite requests that were already decided.

Execution

What happens after approval

Manual or scheduled execution

An authorised user executes the request or schedules it for later. Automatic execution can be enabled per server, but if a never skip rule was triggered the machine will not run it and a person has to press the button.

Rollback and sandbox

The product can generate a rollback script from the original. A server can be marked so that nothing runs without one. A script can also be tried on an isolated server without touching production, and the result is attached to the request.

Let us be explicit about the scope. Automatic generation covers object definition changes: for tables, columns, indexes, views, procedures and the like, the current definition is read from the server and the reversing script is prepared. For statements that change data (UPDATE, DELETE) the previous row values cannot be derived from the script; that is a mathematical limit rather than a product gap. In those cases the rollback script is written by hand and attached to the request, and a server setting can make that mandatory.

Release package

Several requests can be gathered into one package and run in order. A request inside an active package is governed by the package; editing and running it on its own is disabled.

Emergency

An emergency request is routed to a separate emergency policy. A justification is mandatory, declaring an emergency is a permission in its own right, and an emergency policy must contain at least one non skippable approval step.

Screens

Change request screen with the script, the validation findings and the risk band
Request and validation The script, the rules it triggered and the line numbers.
Current definition window with the statement to be executed on top and the object's current definition on the target server below
Compared against the server The statement to be executed on top, the object's current definition on the target server below. The comparison is made against the definition read from the server at that moment, not a file in a repository; for statements that do not replace the whole object, the current definition is shown in a single pane instead of a line by line diff.
The request screen on the affected objects tab, showing the approval policy in force, whether each step ran, and the compare button at the end of the row
Affected objects and the policy in force The objects the script touches, which approval policy applied, and the reason whenever a step does not run.
SQL standards screen with the rule list, the tier and the never skip flag
SQL standards The rule catalog with each rule tier and never skip flag.
Approval policies screen with the steps, the approver roles and the trigger conditions
Approval policies Steps, roles and trigger conditions.
Request list screen with the status, the risk band and the pending approval steps
Request list Status, band and pending steps.
Parameters screen, segregation of duties tab: whether the approver may execute and whether the requester may approve their own request
Segregation of duties settings May the approver execute, may the requester approve their own.
Release packages screen with the approved requests in the package, the execution order and the dependencies
Release packages Approved requests, the execution order and the dependencies between them.

Next