Can you please explain to me the RDBMS security concepts of client/server architectures?
I can certainly give you an overview – but security is, of course, a complex area, so this is just scraping the surface. Essentially, one of the “jobs” of the database engine is to look after the data. So any client application that tries to connect to a relational database management system (RDBMS) – i.e., the database server – has to supply some form of authorization to the engine. This is verified (or not) against a list of the users “known” to the engine.
Assuming that a match is found, the application is allowed to access the data appropriate for that user. Of course, it’s possible to create a user called “App” or something similar specifically for a given application and give that user the correct access rights for that one application. It’s also possible to put the security functions in the application itself. But as a database person, I would always work on the default assumption that the database engine should be controlling security.
This was first published in August 2010