RBAC (multi-user)
FileDB поддерживает два режима аутентификации:
- Single-password (по умолчанию) — один пароль через флаг
-password, полный доступ. - RBAC — multi-user, включается наличием файла
data/users.json.
Модель действует единообразно для HTTP API, Web UI и wire-протоколов PostgreSQL/MySQL — одни и те же учётки, роли и доступ к БД везде.
Создание пользователей
./filedb -data ./data -add-user alice -add-user-password "secret" -add-user-role admin
./filedb -data ./data -add-user bob -add-user-password "secret" -add-user-role read
./filedb -data ./data -add-user carol -add-user-password "secret" -add-user-role write -add-user-dbs shop,logs
Роли
- admin — полный доступ ко всем БД, управление пользователями.
- write — SELECT/INSERT/UPDATE/DELETE на разрешённых БД, без DDL.
- read — только SELECT/SHOW/EXPLAIN на разрешённых БД.
databases: ["*"] — доступ ко всем базам; список имён — только к перечисленным.
Управление пользователями через API
# список (без хешей паролей)
curl $URL/api/rbac/users -H "X-Token: $TOKEN"
# создать
curl -X POST $URL/api/rbac/users -H "X-Token: $TOKEN" -H "Content-Type: application/json"
-d '{"username":"frank","password":"x","role":"write","databases":["db1.fdb"]}'
# изменить роль/пароль/базы
curl -X PUT $URL/api/rbac/users/frank -H "X-Token: $TOKEN" -d '{"role":"read"}'
# удалить
curl -X DELETE $URL/api/rbac/users/frank -H "X-Token: $TOKEN"
Web UI для управления — /rbac (только admin).
Защитные ограничения
Нельзя удалить свой аккаунт; нельзя удалить или понизить в правах последнего admin'а; в RBAC-режиме single-password игнорируется; после нескольких неудачных попыток входа учётка блокируется на время — и через HTTP, и через wire-протоколы.
Похожие страницы
← Назад
Бинарный RPC