Short access control notation

When describing or logging the permissions granted to users (e.g., in the audit log records), a special short notation for access control may be used. The notation can vary slightly depending on the list of permissions and their inheritance from child objects.

Notation format

Each entry begins with a + sign and consists of 2 or 3 attributes listed through the : symbol.
These attributes are:

  • List of permissions. If there are multiple, they are wrapped in round brackets and separated by |. Mandatory.
  • SID of the subject granted permissions. Mandatory.
  • Inheritance type. Optional.

When the inheritance type is not specified, it means that permission wasn't inherited.

Examples

  • +R:subject:O
  • +W:subject
  • +(SR|UR):subject
  • +(SR|ConnDB):subject:OC+

List of permissions

A short abbreviation is used to record each permission.

Permission Groups

Permission groups are unions of several permissions. Where possible, one of the groups will be indicated in the short notation.
For example, +R:subject — permission to read.

Group Description
L (list) enumeration. It consists of permissions to read ACL attributes and describe objects.
R (read) reading. It consists of permissions to enumerate and read from a table and a topic.
W (write) writing. It consists of permissions to update and delete table records, write ACL attributes, create subdirectories, create tables, and topics, modify and delete objects, and change user attributes.
U (use) use. It consists of permissions for reading, writing, granting access rights, and sending requests to the database.
UL (use legacy) obsolete version of use. It consists of permissions for reading, writing, and granting access rights.
M (manage) management. It consists of permissions to create and delete databases.
F (full) all rights. It consists of permissions for use and management.
FL (full legacy) obsolete version of all rights. It consists of permissions for use (obsolete) and management.

Simple Permissions

If there's no matching permission group, the list of permissions will be provided in parentheses separated by the vertical bar | symbol.

For example, +(SR|UR):subject — permission for reading and updating table records.

Permission Description
SR (select row) reading from the table
UR (update row) updating table records
ER (erase row) deleting table records
RA (read attributes) reading ACL attributes
WA (write attributes) writing ACL attributes
CD (create directory) creating subdirectory
CT (create table) creating table
CQ (create queue) creating queue
RS (remove schema) deleting objects
DS (describe schema) describing objects, listing directories content
AS (alter schema) modifying objects
CDB (create database) creating database
DDB (drop database) deleting database
GAR (grant access rights) granting access rights (not exceeding their own)
WUA (write user attributes) changing user attributes
ConnDB (connect database) connecting and sending requests to the database

Inheritance Types

One or more inheritance flags can be used to describe the passing of permissions to child objects.

Flag Description
- without inheritance
O this entry will be inherited by child objects
C this entry will be inherited by child containers
+ this entry will be used only for inheritance and will not be used for access checking on the current object