What are the best ways to protect the database data, and several people have access to the database, but not all should be able to see all the data (specific tables or fields).
In a perfect world, the production bank should not be directly accessed, only by the application.
Developers must have a replica of the database, with data that does not necessarily need to reflect the production.
Since not everything is perfect, the easiest way to control what happens in a bank is to create separate users for each person, each with their specific permissions.
And even the people who have access to everything, at a certain point can lose them.
Preferably for direct access to the bank recommend that users have only read permissions.
Update
I’ve thought about maybe creating an interface between the database and the people who access this information, but I don’t know if this is a viable solution and that maybe there were other methods or tools to do this. (that is the reason for the question)
This is the way, maybe not an interface, but a Data Warehouse service, where the data would already be consolidated and would not need direct access by the Ops team to the bank.
The problem with copies, is that if a dev is turned off, there contains sensitive data that it may have backed up in some personal account and end up putting the company in check.
In this case specifically you should be using Seeds with data not coming from the production database. And to take advantage of the package, use some form of Migration.
It depends on what you want. This question lacks details, context.
– Maniero
I’ll complement @Maniero
– KaduAmaral
@Kaduamaral if the focus is security maybe can leave from here, but there are other tools too.
– gato
Excellent, I will study this, it seems to fit perfectly in my architecture. If you can give an example of the other tools, because I don’t know any.
– KaduAmaral