我使用以下说明为mongo创建了一个管理员用户:
http://docs.mongodb.org/manual/tutorial/add-user-administrator/
从mongo客户端看起来我可以进行身份验证:
> use admin
switched to db admin
> db.auth('admin','SECRETPASSWORD');
1
>
Run Code Online (Sandbox Code Playgroud)
但我不能以任何其他方式连接.例如:
mongo -u admin -p SECRETPASSWORD
给出错误:
JavaScript执行失败:错误:18 {code:18,ok:0.0,errmsg:"auth failed"}在src/mongo/shell/db.js:L228
我在etc/mongod.conf中有auth = true.
我错过了什么?
我今天首先安装了MongoDB 3.4.1.但是当我启动它并使用MongoDB shell时,它给了我以下警告:
C:\Users\hs>"C:\Program Files\MongoDB\Server\3.4\bin\mongo.exe
MongoDB shell version v3.4.1
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.1
Server has startup warnings:
2017-01-12T21:19:46.941+0800 I CONTROL [initandlisten]
2017-01-12T21:19:46.942+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-01-12T21:19:46.942+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2017-01-12T21:19:46.942+0800 I CONTROL [initandlisten]
Run Code Online (Sandbox Code Playgroud)
我的电脑是Microsoft Windows [版本10.0.14393].
我有生产环境,我的mongoDB启动并运行,DBA要求我们更改用于身份验证的密码.一种方法是使用新密码再次运行addUser命令,如 更改密码中所述
> db.auth("app_user", "somepassword")
db.addUser("app_user", "new password")
Run Code Online (Sandbox Code Playgroud)
这与添加新用户一样好.
我明白,我有一次我添加一个新用户所描述的重新启动的mongod与--auth选项中,但因为这是一个生产env和我不能重新启动我的服务器.还有其他选择吗?或者,如果我的方法是错误的,如何更改mongoDB中的密码
我尝试mongo在 kubernetes 集群上配置身份验证。我部署了以下内容yaml:
kind: StatefulSet
metadata:
name: mongo
spec:
serviceName: "mongo"
replicas: 1
template:
metadata:
labels:
app: mongo
spec:
containers:
- name: mongodb
image: mongo:4.0.0
env:
- name: MONGO_INITDB_ROOT_USERNAME
value: "admin"
- name: MONGO_INITDB_ROOT_PASSWORD
# Get password from secret
value: "abc123changeme"
command:
- mongod
- --auth
- --replSet
- rs0
- --bind_ip
- 0.0.0.0
ports:
- containerPort: 27017
name: web
volumeMounts:
- name: mongo-ps
mountPath: /data/db
volumes:
- name: mongo-ps
persistentVolumeClaim:
claimName: mongodb-pvc
Run Code Online (Sandbox Code Playgroud)
当我尝试使用用户名“admin”和密码“abc123changeme”进行身份验证时,我收到了"Authentication failed." …
我正在尝试使用Robo 3T远程连接到我的 Google Cloud Server以连接MongoDB v4.0.11,这样我就可以从 Windows 中查看数据。
我正在运行 Ubuntu 18.04LTS Minimal。为了启用到 MongoDB 的远程连接,我首先在我的 admin 数据库中创建了一个管理用户和 root 用户。
我的问题是,一旦我添加authorization: "enabled"到security:在/etc/mongod.conf重启MongoDB中,我在运行时,遇到下列情况$:systemctl status mongod
? mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2019-08-06 16:43:51 BST; 1min 20s ago
Docs: https://docs.mongodb.org/manual
Process: 6517 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=2)
Main PID: 6517 (code=exited, status=2)
Aug 06 16:43:51 instance-1 systemd[1]: Started MongoDB Database …Run Code Online (Sandbox Code Playgroud) 我不敢相信没有简单的例子可以说明这一点。我到处都在阅读不同的版本。
mongo --port 27017 -u "admin" -p "mypass" --authenticationDatabase "mydb"
use mydb
db.createUser(
{
user: "normal",
pwd: "anotherpass",
roles: [ { role: "readWriteAnyDatabase", db: "mydb" } ]
}
)
Run Code Online (Sandbox Code Playgroud)
我得到:
Error: couldn't add user: No role named readWriteAnyDatabase
Run Code Online (Sandbox Code Playgroud)