Content

MongoDB数据库授权认证的实现(mongodb用户名密码登录)速看

在这里插入图片描述

文章摘要

这篇文章介绍了如何在MongoDB中配置和管理用户权限,并通过命令行工具进行操作。主要内容包括: 1. **用户管理**:创建用户、设置认证、重启服务等操作,例如使用`db.createUser()`创建用户,`db.changeUserPassword()`更改密码,以及使用口令登录(如`mongo -uadmin -p123456`)。 2. **权限配置**:通过配置文件(如`/data/mongodb_cluster/mongodb.yml`)启用授权认证,指定用户角色和数据库关联。例如,允许“mytest”用户对“test”和“test2”数据库进行不同权限的操作。 3. **验证权限**:使用命令行工具(如`mongo`)登录用户并验证其权限。例如,用户“mytest”可以对“test”库进行读写操作,而对“test2”库只能读取数据。 文章通过实际操作展示了如何在不同数据库和库中管理用户权限,并验证了普通用户和特定用户组的访问权限。


目录1.与用户相关的命令2.配置mongodb登陆授权认证2.1.创建一个用户2.2.修改配置文件启用用户认证2.3.重启mongodb2.4.使用口令登陆mongodb3.授权用户并赋予多个权限3.1.创建用户并制造数据3.2.使用mytest登录test库验证权限3.3.使用mytest登录test2库验证权限

db.auth() 将用户验证到数据库。 db.changeUserPassword() 更改现有用户的密码。 db.createUser() 创建一个新用户。 db.dropUser() 删除单个用户。 db.dropAllUsers() 删除与数据库关联的所有用户。 db.getUser() 返回有关指定用户的信息。 db.getUsers() 返回有关与数据库关联的所有用户的信息。 db.grantRolesToUser() 授予用户角色及其特权。 db.removeUser() 已过时。从数据库中删除用户。 db.revokeRolesFromUser() 从用户中删除角色。 db.updateUser() 更新用户数据。

> use admin > db.createUser( { user: “admin”, pwd: “123456”, roles: [ { role: “root”, db: “admin” } ] //指定角色为root,表示管理员 } > db.getUsers()

在这里插入图片描述

[mongo@mongodb-1 ~]$ vim /data/mongodb_cluster/mongodb_27017/conf/mongodb.yml security: authorization: enabled
[mongo@mongodb-1 ~]$ mongod -f /data/mongodb_cluster/mongodb_27017/conf/mongodb.yml –shutdown killing process with pid: 17899 [mongo@mongodb-1 ~]$ mongod -f /data/mongodb_cluster/mongodb_27017/conf/mongodb.yml about to fork child process, waiting until server is ready for connections. forked process: 18511 child process started successfully, parent exiting
[mongo@mongodb-1 ~]$ mongo -uadmin -p123456 MongoDB shell version v4.0.14 connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb Implicit session: session { “id” : UUID(“ae65176e-ac6b-4906-b621-496996381417”) } MongoDB server version: 4.0.14 > show dbs

使用口令登陆后会发现最后一个警告信息也会消失

在这里插入图片描述

mongodb可以创建多个用户并针对不同的库进行不同的操作

1.创建用户 [mongo@mongodb-1 ~]$ mongo -uadmin -p123456 > db.createUser( … { … user: “mytest”, … pwd: “123456”, … roles: [ { role: “readWrite”, db: “test” }, //可读可写 … { role: “read”, db: “test2” } ] //可读 … } … ) 2.插入数据 test库 > use test > db.test.insert()

在这里插入图片描述

1.登录mytest用户并连接到tets库 [mongo@mongodb-1 ~]$ mongo -umytest -p123456 192.168.81.210:27017/test 2.查看所有表 > show tables hash test 3.查看是否有读权限 > db.test.find() { “_id” : ObjectId(“602c73b5d9d09b9b700c9eb2”), “name” : “xiaoming”, “age” : 10 } { “_id” : ObjectId(“602c73bdd9d09b9b700c9eb3”), “name” : “xiaohong”, “age” : 10 } { “_id” : ObjectId(“602c73c1d9d09b9b700c9eb4”), “name” : “xiaolan”, “age” : 10 } 4.查看是否有写入权限 > db.test.insert(

可读可写

在这里插入图片描述

由于普通用户只能登录test库因此想要切换其他库,只能是登陆test库后使用use进行切换

1.登录test库 [mongo@mongodb-1 ~]$ mongo -umytest -p123456 192.168.81.210:27017/test 2.切换到tets2库 > use test2 3.查看表 > show tables test2 4.查看表中数据 > db.test2.find() 5.插入一条数据,查看是否插入成功 > db.test2.insert()

可以看到只能读取,不能插入

在这里插入图片描述

到此这篇关于MongoDB数据库授权认证的实现的文章就介绍到这了,更多相关MongoDB数据库授权认证内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:基于Docker的MongoDB实现授权访问的方法浅析MongoDB之安全认证python连接mongodb密码认证实例MongoDB开启权限认证的方法步骤详解Java开发之spring security实现基于MongoDB的认证功能关于Mongodb 认证鉴权你需要知道的一些事Mongodb 3.2.9开启用户权限认证问题的步骤详解MongoDB安全及身份认证(实例讲解)mongodb 3.4下远程连接认证失败的解决方法