Besides statically mapping the transaction object with the database cache in the PowerServer project painter > Database page, 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 higher priority than the static mapping if both exist.
The following two statements are equivalent (when not specified, the value of cachegroup is "default"):
Sqlca.dbparm="cachename='Test'"
Sqlca.dbparm="cachegroup='default', 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.