2. MongoDB用户管理

在MongoDB中进行用户管理涉及用户的创建、分配角色、认证和登录等操作。1 连接到MongoDB

1. 连接到MongoDB

2. 切换到目标数据库

在MongoDB中,用户是针对特定数据库创建的,使用use命令切换到你要创建用户的数据库:

use <database_name>

  • database_name - 为要切换的数据库。

 3. 创建用户

使用db.createUser命令创建用户并分配角色。

例如,创建一个名为 testuser 的用户,密码为 password123,并赋予 readWrite 和 dbAdmin 角色:

db.createUser({
  user: "testuser",
  pwd: "password123",
  roles: [
    { role: "readWrite", db: "<database_name>" },
    { role: "dbAdmin", db: "<database_name>" }
  ]
})

4. 验证用户

创建用户后,可以使用db.auth命令验证用户身份

db.auth("testuser", "password123")

5. 启动身份验证

为了确保只有经过身份验证的用户才能访问 MongoDB,需要启用身份验证。

编辑 MongoDB 配置文件 mongod.conf,并在其中添加以下内容:

security:
  authorization: "enabled"

然后重启 MongoDB 服务以应用更改。

6. 使用用户身份登录

启用身份验证后,你需要使用创建的用户身份连接到 MongoDB:

mongosh --host <hostname> --port <port> -u "testuser" -p "password123" --authenticationDatabase "<database_name>"

7. 删除用户

使用 db.dropUser 命令删除指定用户。

例如,删除名为 testuser 的用户:

db.dropUser("testuser")

8. 实例操作

启动 MongoDB Shell 并连接到服务器:
mongosh --host localhost --port 27017

切换到 testdb 数据库:
use testdb

创建 testuser 用户:
db.createUser({
  user: "testuser",
  pwd: "password123",
  roles: [{ role: "readWrite", db: "testdb" }]
})

启用身份验证并重启 MongoDB 实例
编辑 mongod.conf 文件,添加以下内容:
security:
  authorization: "enabled"

重启 MongoDB 服务:
sudo systemctl restart mongod

使用 testuser 用户进行身份验证连接:
mongosh --host localhost --port 27017 -u "testuser" -p "password123" --authenticationDatabase "testdb"

删除 testuser 用户:
db.dropUser("testuser")

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MongoDB 中,可以通过以下方式进行用户管理: 1. 创建用户: 使用 `db.createUser()` 方法创建新用户。例如,创建一个用户名为 "admin",密码为 "password",角色为 "userAdminAnyDatabase" 的用户可以执行以下命令: ``` db.createUser( { user: "admin", pwd: "password", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } ) ``` 2. 删除用户: 使用 `db.dropUser()` 方法删除现有用户。例如,删除名为 "admin" 的用户可以执行以下命令: ``` db.dropUser("admin") ``` 3. 修改用户密码: 使用 `db.changeUserPassword()` 方法修改现有用户的密码。例如,将名为 "admin" 的用户的密码修改为 "newpassword" 可以执行以下命令: ``` db.changeUserPassword("admin", "newpassword") ``` 4. 切换到其他数据库管理用户: 使用 `use <db>` 命令切换到其他数据库,然后使用上述命令进行用户管理。 5. 查看当前数据库用户: 使用 `db.getUsers()` 方法查看当前数据库用户列表。例如,查看当前数据库(如 "admin")的用户列表可以执行以下命令: ``` db.getUsers() ``` 6. 查看指定数据库用户: 使用 `db.getSiblingDB(<db>).getUsers()` 方法查看指定数据库用户列表。例如,查看数据库 "mydb" 的用户列表可以执行以下命令: ``` db.getSiblingDB("mydb").getUsers() ``` 7. 用户认证: 使用 `db.auth()` 方法对用户进行身份验证。例如,使用名为 "admin" 的用户和密码 "password" 进行身份验证可以执行以下命令: ``` db.auth("admin", "password") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值