bestsource

MongoDB 현재 사용자 표시

bestsource 2023. 3. 20. 23:23
반응형

MongoDB 현재 사용자 표시

현재 사용자에게 mongo shell에 로그인한 것을 어떻게 표시합니까?로그인하고 있는 유저를 변경할 수 있기 때문에, 이 조작은 편리합니다. db.auth("newuser", "password"): 인터랙티브셸에 있는 동안.길을 잃기 쉽다.

갱신하다

승인된 답변을 기반으로 사용자, 연결 및 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>

connectionStatus명령어는 인증된 사용자(다른 데이터 중 존재하는 경우)를 나타냅니다.

db.runCommand({connectionStatus : 1})

그 결과 다음과 같은 일이 발생합니다.

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

따라서 셸에서 접속하는 경우 기본적으로 현재 사용자가

또한 사용자 이름을 프롬프트에 추가할 수도 있습니다.prompt에서 기능하다..mongorc.js파일, OS 사용자 홈디렉토리 아래에 있습니다.대략:

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>

언급URL : https://stackoverflow.com/questions/21414608/mongodb-show-current-user

반응형