这是我用来在MongoDB中创建用户帐户的脚本:
mongo <<EOF
use admin;
db.createUser({user:ram", pwd: "ram123!", roles:['root']});
db.createUser({user:"sam", pwd: "sam123!", roles:[{db:"config", role:'readWrite'}]});
EOF这适用于创建第一个用户,但不适用于第二个用户。这是返回的错误:
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("f648b868-7863-4d5c-9912-e3e87b24f4e8") }
MongoDB server version: 4.4.6
switched to db admin
Successfully added user: { "user" : "ram", "roles" : [ "root" ] }
uncaught exception: Error: couldn't add user: command createUser requires authentication :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.createUser@src/mongo/shell/db.js:1386:11
@(shell):1:1
bye发布于 2021-05-31 04:59:52
问题似乎在于创建帐户时所期望的不同数据库。第一个,ram是针对admin数据库创建的。第二个问题是,sam应该是在config数据库上创建的,但是您已经连接到admin,这使得这是不可能的。
为了正确地做到这一点,您需要首先连接到config数据库,并在那里为访问config的用户运行脚本。
https://dba.stackexchange.com/questions/292514
复制相似问题