OrientDB - bezpieczeństwo
Podobnie jak RDBMS, OrientDB zapewnia również bezpieczeństwo w oparciu o dobrze znane koncepcje, użytkowników i role. Każda baza danych ma swoich własnych użytkowników, a każdy użytkownik ma jedną lub więcej ról. Role to połączenie trybów pracy i zestawu uprawnień.
Użytkownicy
Domyślnie OrientDB obsługuje trzech różnych użytkowników dla całej bazy danych na serwerze -
Admin - Ten użytkownik ma dostęp do wszystkich funkcji w bazie danych bez ograniczeń.
Reader- Ten użytkownik jest użytkownikiem tylko do odczytu. Czytelnik może wysyłać zapytania do dowolnych rekordów w bazie danych, ale nie może ich modyfikować ani usuwać. Nie ma dostępu do informacji wewnętrznych, takich jak użytkownicy i same role.
Writer - Ten użytkownik jest tym samym użytkownikiem, co czytnik użytkownika, ale może również tworzyć, aktualizować i usuwać rekordy.
Praca z użytkownikami
Gdy masz połączenie z bazą danych, możesz wysyłać zapytania do bieżących użytkowników bazy danych przy użyciu SELECT zapytania na OUser klasa.
orientdb> SELECT RID, name, status FROM OUser
Jeśli powyższe zapytanie zostanie wykonane pomyślnie, otrzymasz następujące dane wyjściowe.
---+--------+--------+--------
# | @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).
Tworzenie nowego użytkownika
Aby utworzyć nowego użytkownika, użyj polecenia WSTAW. Pamiętaj, robiąc to, musisz ustawić status na AKTYWNY i nadać mu ważną rolę.
orientdb> INSERT INTO OUser SET
name = 'jay',
password = 'JaY',
status = 'ACTIVE',
roles = (SELECT FROM ORole WHERE name = 'reader')
Aktualizowanie użytkowników
Nazwę użytkownika można zmienić za pomocą instrukcji UPDATE.
orientdb> UPDATE OUser SET name = 'jay' WHERE name = 'reader'
W ten sam sposób możesz również zmienić hasło użytkownika.
orientdb> UPDATE OUser SET password = 'hello' WHERE name = 'reader'
OrientDB zapisuje hasło w formacie skrótu. SpustOUserTrigger szyfruje hasło w sposób przezroczysty przed zapisaniem rekordu.
Wyłączanie użytkowników
Aby wyłączyć użytkownika, użyj UPDATE, aby zmienić jego stan z ACTIVE na SUSPENDED. Na przykład, jeśli chcesz wyłączyć wszystkich użytkowników oprócz administratora, użyj następującego polecenia -
orientdb> UPDATE OUser SET status = 'SUSPENDED' WHERE name <> 'admin'
Role
Rola określa, jakie operacje użytkownik może wykonać na zasobie. Przede wszystkim decyzja ta zależy od trybu pracy i zasad. Same zasady działają inaczej, w zależności od trybu pracy.
Praca z rolami
Gdy masz połączenie z bazą danych, możesz zapytać o bieżące role w bazie danych za pomocą SELECT zapytania na ORole klasa.
orientdb> SELECT RID, mode, name, rules FROM ORole
Jeśli powyższe zapytanie zostanie wykonane pomyślnie, otrzymasz następujące dane wyjściowe.
--+------+----+--------+-------------------------------------------------------
# |@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).
Tworzenie nowych ról
Aby utworzyć nową rolę, użyj instrukcji INSERT.
orientdb> INSERT INTO ORole SET name = 'developer', mode = 0
Praca z trybami
Tam, gdzie reguły określają, co użytkownicy należący do określonych ról mogą robić w bazach danych, tryby pracy określają, w jaki sposób OrientDB interpretuje te reguły. Istnieją dwa rodzaje trybów pracy, oznaczone 1 i 0.
Allow All But (Rules)- Domyślnie jest to tryb superużytkownika. Określ wyjątki od tej reguły za pomocą reguł. Jeśli OrientDB nie znajdzie żadnych reguł dla żądanego zasobu, wówczas umożliwia użytkownikowi wykonanie operacji. Używaj tego trybu głównie dla zaawansowanych użytkowników i administratorów. Domyślny administrator roli domyślnie korzysta z tego trybu i nie ma żadnych reguł dotyczących wyjątków. W bazie danych jest zapisane jako 1.
Deny All But (Rules)- Domyślnie ten tryb nie pozwala na nic. Określ wyjątki od tej reguły za pomocą reguł. Jeśli OrientDB znajdzie reguły dla żądanego zasobu, wówczas umożliwia użytkownikowi wykonanie operacji. Użyj tego trybu jako domyślnego dla wszystkich klasycznych użytkowników. Domyślne role, czytający i zapisujący, używają tego trybu. W bazie danych jest zapisane jako 0.