Arangodb:arangosh获得给定用户/数据库的数据库/用户

时间:2016-09-21 13:18:21

标签: database arangodb

如何从arangosh内获得 1)给定用户的所有授权数据库
2)给定数据库的所有授权用户

1 个答案:

答案 0 :(得分:2)

您可以使用AQL执行此操作。

1)db._query("FOR u IN _users FILTER u.user == @user FOR db IN ATTRIBUTES(u.databases) FILTER u.databases[db] == 'rw' RETURN db", {"user":"user_name"})

2)db._query("FOR u IN _users LET userDbs = (FOR db IN @dbs FILTER u.databases[db] == 'rw' RETURN db) FILTER LENGTH(userDbs) RETURN u.user", {"dbs":["*","database_name","another_database_name"]})

使用第二个AQL,您可以搜索有权访问其中一个给定数据库的用户。用户可以访问所有数据库(如root用户),而不能访问一个显式数据库。在这种情况下,您必须使用*作为数据库名称,就像在我的示例中一样。