Enterprise Service Management in ServiceDesk Plus is implemented on a single server and single database model. i.e the data pertaining to all instances are stored in the same database and table. The data segregation is handled at the application level.
Common Tables: Tables that contain data that are common across the organization are called common tables. Some examples for common tables are tables that contain the user information in the organization, the sites present, the type of authentication, and some common settings like the alias URL, attachment path, etc.
Instance Tables: Tables that contain data that are instance-specific are called as Instance Tables. For example, tables that contain requests, changes, projects, etc. To be more precise, the request data related to IT instance, Human Resources instance, and Facilities instance, etc., are stored in the same 'WorkOrder' table but within different ranges.
ESM Security Layer: Each instance when created is associated with a specific range in the database. For example, the data related to the IT service desk instance is stored within a range of 1 to 100,000,000 and data related to Human Resources is stored within 100,000,001 to 200,000,000 and so on. The ESM security layer sits just before the query layer and ensures that every query that goes to the database has the specific range criteria of that portal added to it. Only tables that are common such as Users, Personalization's, login configuration, etc., are allowed without range. This ensures that instance-specific data cannot be fetched from another instance through the application.
File attachments and inline images for each instance are stored in a separate folder.
Every file attachment is associated with a unique alphanumeric key. Only when the key matches, the attachment can be downloaded. This ensures that the attachments of one instance cannot be downloaded from another instance.

In the case of inline images that are available through the URL directly, each inline image is stored with a complex random alphanumeric file name which makes it tougher to iterate and access other instance's data.

Roles in ServiceDesk Plus are instance-specific. A user can be a requester in the IT service desk instance and function as a technician in the Human Resources instance. When the user logs in to the IT instance, the user's roles alone are associated with the view. When the same user switches to the Human Resources instance, the user's requester roles are dropped and the technician roles are loaded for the view. The roles are also loaded accordingly to the browser tabs. i.e, if each tab is loaded with different instances, then switching the tabs will automatically load the roles accordingly.
Custom reports will have the range that is associated with an instance added as criteria automatically ensuring that data related to another instance is not fetched. Query reports are parsed to check if there are any instance-specific tables involved and if yes, the required range criteria are appended to it automatically.