Orientdb 简明教程
OrientDB - Security
与 RDBMS 一样,OrientDB 也提供基于众所周知概念、用户和角色的安全机制。每个数据库都有自己的用户,每个用户有一个或多个角色。角色是工作模式和权限集的组合。
Users
默认情况下,OrientDB 为服务器中的所有数据库维护三个不同的用户 −
-
Admin − 此用户可以不受限制地访问数据库上的所有功能。
-
Reader − 此用户是只读用户。读者可以查询数据库中的任何记录,但不能修改或删除它们。它无权访问内部信息,例如用户和角色本身。
-
Writer − 此用户与用户 reader 相同,但它还可以创建、更新和删除记录。
Working with Users
连接到数据库后,可以通过对 OUser 类的 SELECT 查询来查询数据库上的当前用户。
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).
Creating a New User
要创建新用户,请使用 INSERT 命令。请记住,在此过程中,你必须将状态设置为 ACTIVE,并授予它一个有效角色。
orientdb> INSERT INTO OUser SET
name = 'jay',
password = 'JaY',
status = 'ACTIVE',
roles = (SELECT FROM ORole WHERE name = 'reader')
Roles
角色决定用户可以对资源执行哪些操作。该决定主要取决于工作模式和规则。规则本身根据工作模式会采用不同的工作方式。
Working with Roles
连接到数据库后,可以使用对 ORole 类的 SELECT 查询来查询数据库上的当前角色。
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).
Creating New Roles
要创建新角色,请使用 INSERT 语句。
orientdb> INSERT INTO ORole SET name = 'developer', mode = 0
Working with Modes
规则用于确定属于特定角色的用户在数据库上可以做什么,工作模式用于确定 OrientDB 如何解释这些规则。工作模式有两种类型,由 1 和 0 指定。
-
Allow All But (Rules) − 默认情况下,这是超级用户模式。使用规则指定此模式的例外情况。如果 OrientDB 未为所请求资源找到规则,则允许用户执行操作。主要对高级用户和管理员使用此模式。默认角色 admin 默认使用此模式,且没有例外规则。在数据库中写为 1。
-
Deny All But (Rules) − 默认情况下,此模式不允许任何操作。使用规则指定此模式的例外情况。如果 OrientDB 为所请求资源找到规则,则允许用户执行操作。对所有经典用户使用此模式作为默认模式。默认角色 reader 和 writer 使用此模式。在数据库中写为 0。