User ID patterns as ACLs and ABL permissions checking
- Last Updated: January 16, 2024
- 1 minute read
- OpenEdge
- Version 12.8
- Documentation
ABL permissions for table and field access test a given user ID against a permission string, which is a comma delimited list of permission entries. Permission testing is performed in the ABL client at different times, all using the same permission checking algorithm:
- Compile-time permission checking is performed when an ABL source
(.p/.i/.w/.cls) file is
compiled into r-code.Note: Compile-time permission checking no longer is a recommended best practice data security model when a database can execute pre-compiled modules from any source.
- R-code execution checks permissions to access:
- Meta-schema and schema tables at run time
- User data tables when run-time permission checking is enabled
- User data tables accessed through dynamic buffers and queries
The matching rules for permission checking are simple, but powerful:
- The first match of the user ID against one of the pattern entries ends the check and returns the results to the caller.
- When no match between the user ID and any pattern entry exists, permission is always denied.
- If the pattern entry begins with an exclamation mark (
"!"), permission is denied when a match between the user ID and pattern entry exists. - If the matched pattern does not begin with an exclamation mark, permission is granted when a match between the user ID and the pattern entry exists.