如何向我登录mongo shell的当前用户显示?这很有用,因为可以db.auth("newuser", "password")在交互式shell中更改您登录的用户.人们很容易失去踪迹.
使用接受的答案作为基础,我将提示更改为包括用户,连接和数据库:
.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 + "> ";
}
Run Code Online (Sandbox Code Playgroud)
结果:
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>
Run Code Online (Sandbox Code Playgroud)
Ori*_*Dar 83
该connectionStatus命令显示经过身份验证的用户(如果有的话,在其他一些数据中):
db.runCommand({connectionStatus : 1})
Run Code Online (Sandbox Code Playgroud)
这导致像波纹管一样:
{
"authInfo" : {
"authenticatedUsers" : [
{
"user" : "aa",
"userSource" : "test"
}
]
},
"ok" : 1
}
Run Code Online (Sandbox Code Playgroud)
因此,如果您从shell连接,这基本上是当前用户
您还可以通过覆盖OS用户主目录下的文件中的prompt函数来添加要提示的用户名.mongorc.js.大致:
prompt = function() {
user = db.runCommand({connectionStatus : 1}).authInfo.authenticatedUsers[0]
if (user) {
return "user: " + user.user + ">"
}
return ">"
}
Run Code Online (Sandbox Code Playgroud)
一个例子:
$ mongo -u "cc" -p "dd"
MongoDB shell version: 2.4.8
connecting to: test
user: cc>db.auth("aa", "bb")
1
user: aa>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39157 次 |
| 最近记录: |