OrientDB - Безопасность

Как и СУБД, OrientDB также обеспечивает безопасность на основе хорошо известных концепций, пользователей и ролей. У каждой базы данных есть свои пользователи, и у каждого пользователя есть одна или несколько ролей. Роли - это сочетание режимов работы и набора разрешений.

Пользователи

По умолчанию OrientDB поддерживает трех разных пользователей для всей базы данных на сервере:

  • Admin - Этот пользователь имеет доступ ко всем функциям базы данных без ограничений.

  • Reader- Этот пользователь имеет доступ только для чтения. Читатель может запрашивать любые записи в базе данных, но не может их изменять или удалять. У него нет доступа к внутренней информации, такой как сами пользователи и роли.

  • Writer - Этот пользователь совпадает с пользователем для чтения, но также может создавать, обновлять и удалять записи.

Работа с пользователями

Когда вы подключены к базе данных, вы можете запросить текущих пользователей в базе данных, используя SELECT вопросы по OUser класс.

orientdb> SELECT RID, name, status FROM OUser

Если вышеуказанный запрос выполнен успешно, вы получите следующий результат.

---+--------+--------+-------- 
#  | @CLASS | name   | status 
---+--------+--------+-------- 
0  | null   | admin  | ACTIVE 
1  | null   | reader | ACTIVE 
2  | null   | writer | ACTIVE 
---+--------+--------+-------- 
3 item(s) found. Query executed in 0.005 sec(s).

Создание нового пользователя

Чтобы создать нового пользователя, используйте команду INSERT. Помните, что при этом вы должны установить статус ACTIVE и назначить ему действительную роль.

orientdb> INSERT INTO OUser SET 
               name = 'jay', 
               password = 'JaY',
               status = 'ACTIVE',
               roles = (SELECT FROM ORole WHERE name = 'reader')

Обновление пользователей

Вы можете изменить имя пользователя с помощью оператора UPDATE.

orientdb> UPDATE OUser SET name = 'jay' WHERE name = 'reader'

Таким же образом вы также можете изменить пароль для пользователя.

orientdb> UPDATE OUser SET password = 'hello' WHERE name = 'reader'

OrientDB сохраняет пароль в формате хеша. КурокOUserTrigger прозрачно шифрует пароль перед сохранением записи.

Отключение пользователей

Чтобы отключить пользователя, используйте ОБНОВЛЕНИЕ, чтобы переключить его статус с АКТИВНЫЙ на ПРИОСТАНОВЛЕННЫЙ. Например, если вы хотите отключить всех пользователей, кроме администратора, используйте следующую команду -

orientdb> UPDATE OUser SET status = 'SUSPENDED' WHERE name <> 'admin'

Роли

Роль определяет, какие операции пользователь может выполнять с ресурсом. В основном это решение зависит от режима работы и правил. Сами правила работают по-разному, в зависимости от режима работы.

Работа с ролями

Когда вы подключены к базе данных, вы можете запросить текущие роли в базе данных, используя SELECT вопросы по ORole класс.

orientdb> SELECT RID, mode, name, rules FROM ORole

Если вышеуказанный запрос выполнен успешно, вы получите следующий результат.

--+------+----+--------+------------------------------------------------------- 
# |@CLASS|mode| name   | rules 
--+------+----+--------+------------------------------------------------------- 
0 | null | 1  | admin  | {database.bypassRestricted = 15} 
1 | null | 0  | reader | {database.cluster.internal = 2, database.cluster.orole = 0... 
2 | null | 0  | writer | {database.cluster.internal = 2, database.cluster.orole = 0... 
--+------+----+--------+------------------------------------------------------- 
3 item(s) found.  Query executed in 0.002 sec(s).

Создание новых ролей

Чтобы создать новую роль, используйте оператор INSERT.

orientdb> INSERT INTO ORole SET name = 'developer', mode = 0

Работа с режимами

Если правила определяют, что пользователи, принадлежащие к определенным ролям, могут делать с базами данных, режимы работы определяют, как OrientDB интерпретирует эти правила. Есть два типа режимов работы, обозначенные цифрами 1 и 0.

  • Allow All But (Rules)- По умолчанию это режим суперпользователя. Укажите исключения из этого правила. Если OrientDB не находит правил для запрошенного ресурса, он позволяет пользователю выполнить операцию. Используйте этот режим в основном для опытных пользователей и администраторов. Администратор роли по умолчанию использует этот режим по умолчанию и не имеет правил исключения. В базе данных записывается как 1.

  • Deny All But (Rules)- По умолчанию этот режим ничего не позволяет. Укажите исключения из этого правила. Если OrientDB находит правила для запрошенного ресурса, он позволяет пользователю выполнить операцию. Используйте этот режим по умолчанию для всех классических пользователей. Роли по умолчанию, читатель и писатель, используют этот режим. В базе данных записывается как 0.