Подтвердить что ты не робот

MongoDB Показать текущий пользователь

Как показать текущему пользователю, что я зашел в оболочку mongo как? Это полезно знать, потому что можно изменить пользователя, с которым вы вошли в систему, например:— db.auth("newuser", "password") — в интерактивной оболочке. Можно легко потерять трек.

Update

Используя принятый ответ в качестве базы, я изменил приглашение на включение пользователя, соединения и 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

[email protected]:test> use admin
switched to db admin

[email protected]:admin> db.auth("a_user", "a_password")
1

[email protected]:admin>
4b9b3361

Ответ 1

Команда connectionStatus показывает аутентифицированных пользователей (если они есть, среди некоторых других данных):

db.runCommand({connectionStatus : 1})

Что приводит к чему-то вроде ниже:

{
    "authInfo" : {
            "authenticatedUsers" : [
                    {
                            "user" : "aa",
                            "userSource" : "test"
                    }
            ]
    },
    "ok" : 1
}

Итак, если вы подключаетесь к оболочке, это в основном текущий пользователь

Вы также можете добавить имя пользователя в приглашение, переопределив функцию 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>