Oracle Database 12c Multi-Tenant Data Architecture:
Shared Database, Separate Schema
In this architecture, each tenant has their own set of tables stored in a separate schema. Each database server will only serve up one database. The login credentials used to connect to the database by each user will determine which tenant’s data that user will be allowed to access. It is important that the DBMS have a permission structure in place to ensure users only have access to the data to which they are entitled.
An evaluation of the decision factors shows that this architecture has many of the benefits of the separate database models, while minimizing some of the negative aspects:
- Development time – There is minimal additional development time. Depending on the specific DBMS support for different schemas, there may a few additional instructions after connection to ensure that the user is accessing their correct tables and data.
- Hardware cost – This architecture allows for improved utilization of machine memory resources.
- Application and database performance – The performance of one tenant may be impacted by the activities of other tenants sharing the server machine.
- Security – The DBMS must ensure that its permission structure is such that each tenants data is only available to authorized users. As well, the application must make use of any required commands to select or restrict the schema that be accessed by a user.
- Customization requirements – Each tenant has their own schema, so it is easy to customize it for the differing needs of each tenant.
- The number of tenants – This model is able to handle more tenants than the separate database models, but does still require a certain amount of administration . Migration of tenants to a separate database may be challenging depending on the utilities that are offered by the DBMS.