在我们第一次启动MongoDB的时候,仅仅是制定了data数据目录和log日志目录,并没有指定–auth选项,也就是并不需要认证。
https://docs.mongodb.com/manual/reference/built-in-roles/好了,创建好用户之后,我们重启MongoDB服务,在配置文件中打开–auth参数,或者直接在命令行里面指定auth参数,重新登陆:
https://docs.mongodb.com/manual/reference/built-in-roles/好了,创建好用户之后,我们重启MongoDB服务,在配置文件中打开–auth参数,或者直接在命令行里面指定auth参数,重新登陆:
[root@VM-0-14-centos mongo_27017]# mongoMongoDB shell version v4.0.6connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodbImplicit session: session { "id" : UUID("5f2b0fa6-a1e3-4aaf-b43f-3525e19c33d2") }MongoDB server version: 4.0.6> > use adminswitched to db admin> show users2020-10-28T23:42:06.127+0800 E QUERY[js] Error: command usersInfo requires authentication :_getErrorWithCode@src/mongo/shell/utils.js:25:13DB.prototype.getUsers@src/mongo/shell/db.js:1763:1shellHelper.show@src/mongo/shell/utils.js:859:9shellHelper@src/mongo/shell/utils.js:766:15@(shellhelp2):1:1> db.auth("root","123456")1> show users{"_id" : "admin.root","user" : "root","db" : "admin","roles" : [{"role" : "root","db" : "admin"}],"mechanisms" : ["SCRAM-SHA-1","SCRAM-SHA-256"]}可以看到,当我们第一次使用show users的命令查看用户的时候,系统拒绝了我们,显示:
Error: command usersInfo requires authentication
然后我们进行权限校验:
use admin
db.auth(“root”,”123456″)
这下可以了。
不知道大家有没有留意到一个细节,我们登陆的时候,使用mongo命令登陆的,然后进行用户认证,有没有一种方法可以直接在登陆的时候就进行用户认证呢?答案是有的。
登陆方法一:
mongo
use admin
db.auth(“user”:”password”)
登陆方法二:
mongo -u “user” -p “password”
如下:
[root@VM-0-14-centos mongo_27017]# mongo -u "root" -p "123456"MongoDB shell version v4.0.6connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodbImplicit session: session { "id" : UUID("ef872d7a-77d9-43c2-bf3d-e04867379c0a") }MongoDB server version: 4.0.6> use admin switched to db admin> show users{"_id" : "admin.root","user" : "root","db" : "admin","roles" : [{"role" : "root","db" : "admin"}],"mechanisms" : ["SCRAM-SHA-1","SCRAM-SHA-256"]}>到这里,我们已经学会了第一次登陆MongoDB之后,如何进行初始用户配置、如何开启MongoDB的认证模式(–auth参数)、以及在登录的时候如何进行用户认证,用户这块儿还有很多其他内容,下一节我们展开说。
以上就是MongoDB 用户相关操作的详细内容,更多关于MongoDB 用户操作的资料请关注其它相关文章!