Run applications in a multi-tenant database environment
- Last Updated: February 9, 2023
- 2 minute read
- OpenEdge
- Version 12.2
- Documentation
The primary requirements to run an application against a multi-tenant database are to configure one or more tenants in the database and to configure at least one domain per tenant to which application users can authenticate when they log into your application. For a converted multi-tenant database, any existing application only requires the default tenant in order to execute as originally designed, and you typically add additional regular tenants to expand the application to run with totally separate sets of users, again, with little or no change to the application code.
If you already have domains defined in a multi-tenant database in order to sign on users
using a client-principal object, and you configure each of these existing domains with a
tenant, your application might work without any further changes depending on how you
initialize attributes of the client-principal. Assuming these attributes are set
correctly, existing calls to the SET-DB-CLIENT function or the
SET-CLIENT( ) method (on the SECURITY-POLICY
system handle) will set the tenant identity along with the user identity of any
multi-tenant database connection.
If your user login procedure relies entirely on the User ID (-U)
connection parameter to authenticate database access (at startup or using the
CONNECT statement), as long as you ensure that users provide a user
ID that includes their assigned user name and domain name in the form,
user-name@domain-name, and
the domain is configured for an authentication system (such as the
_User table accounts) to which OpenEdge can authenticate database
connections, your application might also work without any further changes. The main
thing is to ensure that your application sets database connection identity in a manner
that authenticates users with a tenant identity defined in your database.
You can design a number of different approaches (authentication models) to manage user access to OpenEdge databases. For more information on authenticating users with or without a tenant identity, see Learn about Identity Management.
To aid in troubleshooting the management of database user IDs that control access to tenant data, you can enable tenant logging for the Progress Application Server (PAS) for OpenEdge. See Tenancy logging for more detail. Note that enabling tenant logging does not replace OpenEdge auditing for recording which user ID performed database transactions.