Mongodb
如何獲取 MongoDB 伺服器本地時間?
我正在執行一個帶有身份驗證的 mongodb。我想要一個非 root 客戶端來獲取伺服器時間。
我認為最簡單的方法是使用
serverStatus
. 但是預設的 readWrite 使用者沒有這樣的權限。我真的迷失在 mongo 安全模型中。我嘗試添加這樣的
serverStatus
角色: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 }
請問有什麼建議嗎?
我已經讓它執行起來了。我錯過了
serverStatus
應該向集群資源授予操作的要點,例如(請參閱 參考資料cluster: true
):use admin db.createRole( { role: "serverStatus", privileges: [ { resource: { cluster: true }, actions: [ "serverStatus" ] } ], roles: [], writeConcern: { w: "majority" , wtimeout: 5000 } } )
同樣在
grantRolesToUser
發出之前,應該use mydb
避免在另一個數據庫中創建使用者。