Database Connections' credentials encryption

I found this post from awhile back: Database user authentication password encryption

and I wanted to determine if this was still the case.
If so, is there a way to control how Ignition stores these credentials?
Thanks in advance.

That post isn’t about how Ignition stores DB credentials, but how the target DBs store user credentials. Ignition has to have these credentials in plain text or recoverable to plain text because it has to supply the password to the JDBC API. There is no other option.

1 Like

Even if Ignition did encrypt your password, it would necessarily have to have the key to decrypt it as it can’t send a hashed password in a database connection stirng.

If you are worried about database security-

  1. Make sure Legacy DB Access is not on for your vision clients. This would mean you are using named queries everywhere, or are using a message handler to get datasets from a gateway function that is doing dyanmic sql and serving it to a client. This will help prevent SQL injection attacks.
  2. Make sure your gateway logins are hard to guess. Especially important if your gateway is internet facing.
  3. Make sure your database logins are hard to guess. Same rule applies.
  4. Do NOT have Ignition login to your DB as root or sa, but as its own user with roles set for it by root (So that even if someone got into designer and tried to do DROP TABLE X; they would be denied because the Ignition user doesn’t have the privileges)
  5. Good idea to keep your database on a separate machine usually, not only for performance, but if your Gateway machine is compromised, the attacker will not just get root access to your database for free for getting into your server that’s hosting your gateway. Databases are assets to a lot of companies and will stay around a lot longer than whatever the current front end you are using to interact with it is.

It does, and just as you describe.

1 Like

Ah, good to know, this line made me think otherwise.

I think that point # 4 is important. You shouldn't be giving any system more access than they need.

OTOH I work with a system that has had the sa password embedded in plain text in the HMI client code :astonished:

1 Like

This is mentioned in the security hardening guide.

1 Like