sql
The SQL backend allows Radiator to authenticate and authorize users against various SQL databases, such as MySQL/MariaDB, PostgreSQL, and SQLite. The SQL backends are configured with a name.
Example configuration of a SQLite backend:
sqlite "SQL_DATABASE_USERS_INTERNAL" {
# Database URL
# url "sqlite:users-internal.sqlite";
# Alternatively, configure a database filename
filename "/var/lib/radiator/db/users-internal/users-internal.sqlite";
# SQL query named "FIND_USER"
query "FIND_USER" {
# SQL statement
statement "SELECT USERID, PASSWORD FROM USERIDS WHERE USERID = ?";
# Query argument binding in order
bindings {
aaa.identity;
}
# Result value mapping
mapping {
user.username = USERID;
user.password = PASSWORD;
}
}
# SQL query named "USER_GROUPS"
query "USER_GROUPS" {
# SQL statement
statement "SELECT groupname FROM groups INNER JOIN group_memberships ON groups.id = group_memberships.group_id INNER JOIN users ON group_memberships.user_id = users.id WHERE username = ?";
# Query argument binding in order
bindings {
aaa.identity;
}
# Result values mapping
mapping {
user.group += groupname;
}
}
}