From BaseX Documentation
In the permission hierarchy below, the existing permissions are illustrated.
A higher permission includes all lower permissions.
For example, all users who have the
WRITE permission assigned
will also be able to execute commands requiring
Next, local permissions exist, which can be assigned to single databases.
Local permission have a higher priority and override global permissions.
User names must follow the valid names constraints.
Admin permissions are needed to execute all of the following commands:
Creating user 'test' (password will be entered on command line):
> CREATE USER test
Change user 'test' password (password will be entered on command line):
> ALTER USER test
As global permissions, you can set 'none', 'read', 'write', 'create' and 'admin':
Grant all permissions to user 'test':
> GRANT admin TO test
Valid local permissions are 'none', 'read' and 'write':
Granting write permission on database 'factbook' to user 'test':
> GRANT write ON factbook TO test
Note: Local permissions overwrite global permissions. As a consequence, the 'test' user will only be allowed to access (i.e., read and write) the 'factbook' database. If no local permissions are set, the global rights are inherited.
Showing global permissions:
> SHOW USERS
Showing local permissions on database 'factbook':
> SHOW USERS ON factbook
Dropping of user 'test':
> DROP USER test