如何获得MongoDB服务器本地时间?

我使用身份validation运行MongoDB。 我想要一个非root客户端来获得服务器时间。

我认为最简单的就是使用serverStatus 。 但是默认的readWrite用户没有这样的权限。

我真的迷失在mongo安全模式中。 我尝试添加一个像这样的serverStatusangular色:

 db.createRole( { role: "serverStatus", privileges: [ { resource: { db: "admin", collection: ""}, actions: [ "serverStatus" ] } ], roles: [], writeConcern: { w: "majority" , wtimeout: 5000 } } ) 

然后添加到用户:

 db.grantRolesToUser( "myuser", [ { role: "serverStatus", db: "admin" } ] ) 

但试图得到serverStatus我得到:

 > db.serverStatus() { "ok" : 0, "errmsg" : "not authorized on admin to execute command { serverStatus: 1.0 }", "code" : 13 } 

有什么build议吗?

我已经运行了。 我错过了将serverStatus操作授予群集资源的点(请参阅cluster: true ):

 use admin db.createRole( { role: "serverStatus", privileges: [ { resource: { cluster: true }, actions: [ "serverStatus" ] } ], roles: [], writeConcern: { w: "majority" , wtimeout: 5000 } } ) 

grantRolesToUser之前grantRolesToUser应该发出use mydb来避免在另一个数据库中创build一个用户。