Arangodb:对于给定的 user/database,arangosh 被授予 databases/users
Arangodb: arangosh get granted databases/users for a given user/database
如何从arangosh内到达
1) 给定用户的所有授权数据库
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 用户),但不能访问一个显式数据库。在这种情况下,您必须使用 *
作为数据库名称,就像在我的示例中一样。
如何从arangosh内到达
1) 给定用户的所有授权数据库
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 用户),但不能访问一个显式数据库。在这种情况下,您必须使用 *
作为数据库名称,就像在我的示例中一样。