Besides statically mapping the transaction object with the database cache in the Database Configuration window, for each transaction object that already exists in the application, you can also dynamically map it with the database cache using the DBParm CacheName property. Such dynamic mapping with DBParm has priority over the static mapping if both exist.
For example,
Sqlca.dbparm="cachename='Test'"
With the possibility of dynamically mapping a transaction object with the cache in the application scripts, you can create multiple caches which connect to the database with different privileges. When a user logs in, the application decides which cache should be used by the transaction object for establishing the database connection.