I think this conversation shows a mismatch between two different philosophies about how to use the database. The traditional way of doing things you&#x27;ve described involves multiple different applications connecting to the database. Data access is restricted by locking their database users down to specific APIs exposed by stored procedures. Non-trivial logic lives in the database in order to present these APIs.<p>A lot of systems lately are being built in a different way, that is, only one application connects to the database. This application presents an API (ReST, protobufs, thrift) for other apps that need that data. It handles access control and business logic, using the DB as a backing store. That means you don&#x27;t have to worry about dababase user access control, because you don&#x27;t have more than one user.<p>I don&#x27;t have a strong opinion about either of these, but the latter way of working is how we do things at my current job (reasonably large payments software company), and it does work quite well. One advantage I appreciate is that there isn&#x27;t arbitrary business logic sitting in the database where it can be changed on the fly - I wouldn&#x27;t consider that a feature.