orientdb数据库-OrientDB安全

跨零代码为大家提供高品质的解决方案,请大家多多来访,跨零不胜感激,在此谢过。

与RDBMS一样,OrientDB也基于众所周知的概念,用户和角色提供安全性。 每个数据库都有自己的用户,每个用户都有一个或多个角色。 角色是工作模式和权限集合的组合。

用户

默认情况下,OrientDB为服务器中的所有数据库维护三个不同的用户 –

管理员 – 此用户可以无限制地访问数据库上的所有功能。
读取用户 – 此用户是只读用户。读取用户可以查询数据库中的任何记录,但不能修改或删除它们。 它无法访问内部信息,例如用户和角色本身。
写入用户 – 该用户与读取用户相同,但它也可以创建,更新和删除记录。

使用用户
连接到数据库时,可以通过在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). 

创建一个新用户

要创建一个新用户,请使用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在保存记录之前透明地加密密码。

禁用用户

要禁用用户,请使用UPDATE语句将其状态从ACTIVE切换到SUSPENDED。 例如,如果要禁用除admin之外的所有用户,请使用以下命令 –

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如何解释这些规则。 有两种工作模式,分别用10表示。

  • 全部允许(规则) – 默认情况下,它是超级用户模式。 使用规则指定对此的例外情况。 如果OrientDB找不到所请求资源的规则,则允许用户执行该操作。 主要用于高级用户和管理员。 默认角色admin默认使用此模式,并且没有例外规则。 它在数据库中写为1

  • 拒绝所有但(规则) – 默认情况下,此模式不允许任何操作。 使用规则指定对此的例外情况。 如果OrientDB找到请求资源的规则,那么它允许用户执行操作。 使用此模式作为所有经典用户的默认模式。 默认角色,读者和写者,使用这种模式。 它在数据库中写为0

  

从零到一,创造未来!跨零综合IT问题解决服务站,欢迎你的到来。Oracle数据库教程 orientdb数据库/a> 只为你绽放。

本文固定链接: http://kua0.com/2019/05/07/orientdb数据库-orientdb安全/

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注