User internals and API

Database tables

The following database tables store user data:

Database tableDescription
CMS_User

Stores records representing users.

CMS_UserSettingsStores the advanced settings of user accounts.
CMS_UserSiteStores relationships between users and sites. Each entry indicates that a specific user account is available on a given site.
CMS_UserCultureStores relationships between users and cultures. Each entry indicates that a user may edit the content of documents belonging to a specified culture/language (if the given user has the Editor privilege level).
CMS_UserMacroIdentitySecurity signature used when signing macro expressions. Signatures prevent macros from accessing or displaying data for which the author is not authorized. See Working with macro signatures.

The following database tables store the data of user roles, permissions and memberships:

Database tableDescription
CMS_Role

Stores records representing roles.

CMS_UserRoleStores relationships between users and roles. Each entry indicates that a specific role is assigned to a given user. Also stores the expiration date for roles that are assigned for a limited time period.
CMS_MembershipStores records representing memberships.
CMS_MembershipUserStores relationships between users and memberships. Each entry indicates that a user belongs to a specific membership. Also stores the expiration date for roles that are assigned for a limited time period.
CMS_MembershipRoleStores relationships between roles and memberships. Each entry indicates that a membership includes a specific role.
CMS_PermissionStores the system's permissions.
CMS_RolePermission

Stores relationships between roles and permissions. Each entry indicates that a role has a specific permission.

CMS_RoleUIElementStores UI personalization settings for roles.
CMS_RoleApplication

Stores the default application content of the system dashboard for individual roles (the system uses UI elements to represent applications).

Users can individually adjust their own dashboard and override these default settings.

CMS_ACLItemStores page-level permissions, and their relationships with users or roles.
CMS_ACLStores relationships between ACL items and individual pages (tree nodes).