not authorized on admin to execute command

错误提示: 2018-07-06T10:25:37.656+0800 E QUERY [thread1] Error: listCollections

错误提示:

2018-07-06T10:25:37.656+0800 E QUERY    [thread1] Error: listCollections failed: {"ok" : 0,"errmsg" : "not authorized on admin to execute command { listCollections: 1.0, filter: {}, $db: \"admin\" }","code" : 13,"codeName" : "Unauthorized"
} :

这是权限的问题:

角色授权分两种,一种是直接在当前库中创建用户并授予相关权限。如admin库中创建admin用户。另一种情况是

将在admin中创建的用户授予操作其他库的权限,相关授权命令如下:

授予角色:

db.grantRolesToUser("userName", [ { role:"", db: ""} ]) 

取消角色:

db.grantRolesToUser("userName", [ { role:"", db:""} ]) 

下面我们在admin库中执行以下命令:

db.grantRolesToUser("admin", [ { role:"dbOwner", db:"test"} ]) ;
##admin  指的是用户名  test 指的要授权的数据库

ok 问题解决