Skip to content

exasol/row-level-security-lua

Repository files navigation

Row Level Security (Lua)

Build Status

Protect access to database tables on a per-row level based on roles and / or tenants.

Features

Restrict access to rows (datasets) in tables to …

  • set of roles
  • tenants (owners)
  • group of users
  • combination of tenant and role
  • combination of tenant and group

Table of Contents

Information for Users

Information for Contributors

Requirement, design documents and coverage tags are written in OpenFastTrace format.

Runtime Dependencies

Lua Dependencies

Running the RLS Lua Virtual Schema requires a Exasol with built-in Lua 5.1 or later.

Dependency Purpose License
Lua CJSON JSON parsing and writing MIT License
remotelog Logging through a TCP socket MIT License

remotelog has a transitive dependency to LuaSocket (MIT License). Note that Lua CSON and LuaSucket are pre-installed on an Exasol database.

For local unit testing you need to install them on the test machine though.

Test Dependencies

Unit Test Dependencies

Unit tests are written in Lua.

Dependency Purpose License
luaunit Unit testing framework BSD License
Mockagne Mocking framework MIT License

Integration Test Dependencies

The integration tests require exasol-testcontainers to provide an Exasol instance. They are written in Java and require version 11 or later.

See also: Java Dependencies.

Build Dependencies

This project has a complex build setup due to the mixture of Lua and Java. Apache Maven serves as the main build tool.

Lua build steps are also encapsulated by Maven.

Dependency Purpose License
Amalg Bundling Lua modules (and scripts) MIT License
LuaRocks Package management MIT License

See also: Java Dependencies.