如何显示我登录mongo shell的当前用户?这很有用,因为可以更改您登录的用户,例如。 db.auth("newuser", "password")
- 在交互式shell中。人们很容易失去踪迹。
使用接受的答案作为基础,我将提示更改为包括user,connection和db:
在您的主目录中修改.mongorc.js
。
function prompt() {
var username = "anon";
var user = db.runCommand({connectionStatus : 1}).authInfo.authenticatedUsers[0];
var host = db.getMongo().toString().split(" ")[2];
var current_db = db.getName();
if (!!user) {
username = user.user;
}
return username + "@" + host + ":" + current_db + "> ";
}
结果:
MongoDB shell version: 2.4.8
connecting to: test
anon@127.0.0.1:test> use admin
switched to db admin
anon@127.0.0.1:admin> db.auth("a_user", "a_password")
1
a_user@127.0.0.1:admin>
答案 0 :(得分:76)
connectionStatus
命令显示经过身份验证的用户(如果有的话,还有其他一些数据):
db.runCommand({connectionStatus : 1})
这会产生类似下面的事情:
{
"authInfo" : {
"authenticatedUsers" : [
{
"user" : "aa",
"userSource" : "test"
}
]
},
"ok" : 1
}
因此,如果您从shell连接,这基本上是当前用户
您还可以通过覆盖OS用户主目录下prompt
文件中的.mongorc.js
函数来添加要提示的用户名。粗略地说:
prompt = function() {
user = db.runCommand({connectionStatus : 1}).authInfo.authenticatedUsers[0]
if (user) {
return "user: " + user.user + ">"
}
return ">"
}
一个例子:
$ mongo -u "cc" -p "dd"
MongoDB shell version: 2.4.8
connecting to: test
user: cc>db.auth("aa", "bb")
1
user: aa>