Security Questions to Ask About a Schema Sync Tool

For the DBA or architect who has to get a schema synchronization tool through a security review before the team is allowed to buy it.

On this page

You picked your schema synchronization tool, finance approved the budget, and then the security questionnaire arrived, asking where credentials live, what leaves the network, and who can push DDL at production. DbSchema answers all three from a documented page rather than from a sales call. We connect straight from your machine to your database over JDBC, with no DbSchema server in between; we save a password only when you tick Remember, and we save it locally; credentials go to your database, never to us[2].

Wise Coders, the company behind DbSchema, is ISO 27001 certified, and we commit to the highest German and European standards on data privacy and security[6].

What a security review asks about a schema sync tool

A schema synchronization tool reads metadata from a live database, compares it against another definition of the schema, and generates DDL that can alter production. Three questions decide whether it passes review, and all three have answers you can verify yourself rather than take on trust.

The first is the path. Ask whether the desktop application talks to the database server directly, and whether the traffic is encrypted with parameters you set. The second is the privilege: whether the comparison works with a database user that can read the catalog and nothing more, so the account that deploys is a separate one. The third is the metadata: whether table names, column definitions and relationships stay inside your infrastructure or are copied to a vendor's servers to be rendered there.

Ask those three of every candidate before the schema compare shortlist gets shorter, because they are the ones a reviewer can neither waive nor test after the purchase.

Which credentials the comparison runs with

The safest arrangement adds no user directory of its own. DbSchema authenticates as the database user you type into the Connection Dialog, so every privilege boundary your DBA already defined applies unchanged, and there is no second password store to rotate.

Least privilege is easy to arrange because reverse-engineering only reads. Give the evaluation a database user with catalog read rights, connect, and let DbSchema build the model from it. Keep a separate account for the deployment step, which is the only step that writes.

Three settings in DbSchema back that up[2]. Read Only Connection, on the Settings tab, opens the connection in read-only mode so the database refuses every change made through DbSchema; it is the setting for a production connection. Highlight, on the same tab, colors a connection as Production, Development or Test, so a production window is recognizable before you click anything. On the Advanced tab, Properties passes driver settings through as connection properties, which is how an Oracle connection using Kerberos authentication is configured.

An SSH tunnel is a named configuration you set up once and reuse across connections. It authenticates by password, by private key file, or through the running SSH agent, and with the agent the keys stay in ssh-agent or Pageant: DbSchema never sees the private key[2].

Where the schema metadata sits

A design that lives in a browser lives on somebody's server. Table names, column definitions, index layouts and relationships are uploaded so they can be rendered back to you, and that copy is then in scope for every review your organization runs.

DbSchema start screen offering to connect to a database and reverse-engineer it, or to start a design with no database connected and deploy the schema later

DbSchema keeps the design as a local project file: a .dbs file in XML, on your computer, which you keep where you keep your code[2]. Switch the connection to disconnected and you get offline design mode, where changes are saved only to the model file and no statement is sent to the database. Saving the model to a file and designing offline are in the Pro edition, along with schema synchronization itself[1].

Reviewer's questionDbSchemaA browser-hosted design service
Where the design is storedLocal .dbs file, in your Git repositoryOn the vendor's servers
What sits between client and databaseNothing, JDBC directThe service, and any agent it needs
When table data is readWhen you open a table or run a queryAsk the vendor
What an AI feature sendsOnly the DDL of the tables you attachAsk the vendor

What the AI Assistant sends

The rule to insist on is that an AI feature sees metadata and never rows. In DbSchema, only the DDL of the tables you attach is sent: table, column, type and relationship definitions. The assistant never connects to the database and never reads table contents, and query results, row values, passwords and connection details stay inside DbSchema[3].

You choose the tables with the Attach button, and the attachment preview shows the exact CREATE TABLE text that will travel with the question, so nothing is sent blind. Where even the schema must not leave the machine, select Ollama as the provider and run a local model. Where policy forbids AI features outright, clear the Enable checkbox in Edit → Settings → General → AI Assistant and the assistant is gone after a restart[3].

The audit trail lives in Git

Desktop tools do not run a central logging server, and for schema work they do not need one: the repository your team already audits is a better record than a vendor's log. The .dbs file is XML, so committing it gives a history of every table added, column altered and index changed, with branches, merges and rollbacks working as they do for code[4].

DbSchema has the Git client built in. Open Git — Collaborative Design from the Model menu, clone the repository, then use Stage, Commit and Push to publish the model; Pull brings a teammate's version back, and Compare with Current opens the Synchronization Dialog on what changed[4].

  1. Design or refresh the schema in DbSchema and save the model file. Only the file changes.
  2. Generate the migration script from the comparison against the target database.
  3. Commit the model file and the script to a protected branch.
  4. Have the change reviewed and merged like any other pull request.
  5. Deploy the approved script with the deployment account, which is the step that writes to the database.

The migration script in the commit is what makes the trail complete: the reviewer sees the design change and the SQL that implements it side by side.

How to test each security requirement

Run these on a staging database during the trial, with the network monitoring your team normally uses. Every one of them produces evidence you can attach to the review, and all but the comparison test run on the free Community edition.

Do them in this order, because each one narrows what the next can go wrong in: connect, then restrict, then compare, then deploy to a copy nobody depends on.

DbSchema Connection Dialog in Edit the JDBC URL Manually mode, showing a PostgreSQL JDBC URL with SSL enabled and a separate database user
TestHow to run itWhat you should see
Encrypted connectionSet the SSL parameters on the Advanced tab, then click the eye buttonThe composed JDBC URL, with the parameters you chose
Least privilegeConnect with a catalog-read-only userReverse-engineering completes without write rights
Read-only productionTick Read Only Connection, then try an editThe database refuses the change
Script reviewCompare model and database, then read the SQLNothing runs until you click Execute
What leaves the machineWatch outbound traffic while you workWhich hosts the application contacts, and at which moment

Two of those tests deserve a second run. Repeat the read-only test with a user that has more rights than you meant to grant, and watch what the comparison does when it can write. Repeat the script review on a schema somebody has changed by hand, because drift is the thing a comparison has to report honestly. When you compare schema migration tools, check as well that destructive statements such as DROP COLUMN are visible in the generated script rather than folded into it.

What the cost is over three years

Security and cost meet in one place: how many licences the policy forces you to buy, and whether they stop working when a renewal is missed.

DbSchema business perpetual pricing in US dollars: Community Edition free, Pro Edition one time $294.00 with $75.00 per year from the second year, Architect Edition $470.40
ToolListed priceEngines per licenceOver three years
DbSchema ProOne time or monthly, on the purchase pageAll supported SQL and NoSQL enginesOne purchase, renewals optional
Navicat Premium Enterprise799.99 USD a year, or 1,599.00 USD perpetualMultiple relational and NoSQL enginesThree subscription years, or one perpetual purchase
dbForge Studio for SQL Server299.95 USD a year Standard, 659.95 USD a year EnterpriseOne engine, separate Studio per engineRenewals for as long as you subscribe, per engine

Navicat lists Navicat Premium Enterprise at USD 79.99 a month, USD 799.99 a year, or USD 1,599.00 for a perpetual licence[5]. Devart lists dbForge Studio for SQL Server at $299.95 for a one-year Standard subscription and $659.95 for Enterprise, before taxes, with a switch between subscription and perpetual and one, two or three year durations that move the figure[7]. The dbForge Studio products are sold one engine at a time, so a stack with PostgreSQL and MongoDB in it needs a second and a third purchase.

The purchase page carries the DbSchema figures on three audience tabs, Business, Personal and Universities & Students, and it prices in your own currency, so the row above gives the shape of the licence and the page gives the amount. Pro is a one-time purchase per user plus taxes, covers every supported engine, and includes the first year of updates; the annual renewal after that is optional, because the licence you bought keeps working[1]. That tier is the one that carries schema synchronization, the saved model file, the documentation export and the visual query builder.

The questions to ask a vendor before you buy

Send this list with the trial request, and keep the written answers for the review file:

  • Where connection strings and passwords are stored, and whether they leave the workstation.
  • Whether schema metadata, query text or telemetry is transmitted to vendor servers.
  • Whether the product runs with no internet access, on an air-gapped network.
  • How JDBC drivers are obtained, and whether you may supply your own .jar.
  • What an AI feature reads, and whether it can be switched off entirely.
  • Whether the generated DDL is shown for review before it executes.

Run the tests above against your own database while you wait for the answers. Download DbSchema at https://dbschema.com/download.html, connect with a read-only user, and reverse-engineer a schema over an SSL connection. Connecting, reverse-engineering, the diagrams and the SQL editor are free in the Community edition, which covers the least-privilege and outbound-traffic tests; the saved model file, offline design and schema synchronization are Pro, and a new installation starts with a 15-day Architect trial, which includes them.

Frequently asked questions

What are the core security requirements for a schema synchronization tool?

An encrypted connection whose parameters you control, a comparison that runs with the database's own privileges, and metadata that stays in your infrastructure. DbSchema picks the encryption from the driver's own parameter list rather than from a hand-typed URL. For PostgreSQL that is SSL Mode: Prefer falls back to a plain connection, Require always encrypts, and Verify CA also checks the server certificate against a trusted CA certificate[2].

Does DbSchema store my database credentials in the cloud?

Your credentials go to your database and never to us. The one thing DbSchema fetches from our own repository is the JDBC driver, and where downloads are blocked you click the wrench button in the Connection Dialog and supply the driver .jar yourself[2].

Are AI features in database design tools a security risk?

DbSchema's AI Assistant honors the proxy and TLS settings configured in Edit → Settings → Network, including SOCKS proxies and a company certificate, so its requests take the path your network team already inspects[3]. Bringing your own provider account and API key, so the requests go to a provider your company already has a contract with, requires the Architect edition[3]. What the assistant is allowed to send at all is the section on the AI Assistant above.

How does licensing affect the three-year cost of a database tool?

A subscription bills for as long as you use it, and single-engine products need a licence per database dialect. The Business tab of the DbSchema purchase page also sells a floating licence, which is per team rather than per person: the quantity you buy is how many people work at the same time, and the team sharing those seats can be larger. The three-year arithmetic for the per-person licences is in the section on cost.

Sources

  1. dbschema.com
  2. dbschema.com
  3. dbschema.com
  4. dbschema.com
  5. navicat.com
  6. dbschema.com
  7. devart.com

Run these security tests against your own database

DbSchema connects over JDBC with SSL, keeps the design model in a local .dbs file you can commit to Git, and shares only the DDL of the tables you attach with its AI Assistant. Community Edition is free for connecting and reverse-engineering; schema synchronization and offline design are Pro.