sql
The SQL backend allows Radiator to authenticate and authorize users against various SQL databases, such as MySQL/MariaDB and PostgreSQL. The SQL backends are configured with a name.
Example configuration of a PostgreSQL backend:
postgres "SQL_DATABASE_USERS_INTERNAL" {
# Database URL
url "postgresql://radiator:password@postgresql-cluster.local:5432/radiator";
# SQL query named "FIND_USER"
query "FIND_USER" {
# SQL statement (PostgreSQL uses $1, $2, etc. for parameters)
statement "SELECT userid, password FROM userids WHERE userid = $1";
# 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 = $1";
# Query argument binding in order
bindings {
aaa.identity;
}
# Result values mapping
mapping {
user.group += groupname;
}
}
}