MongoDB 设置用户名密码和数据库连接

mac 安装完mongodb4.2之后默认是不需要用户就直接可一登录的。
修改完需要登录用户的
修改 MongoDB 配置文件, 配置文件默认在 /usr/local/etc 下的 mongod.conf

systemLog:
   destination: file
   path: /usr/local/var/log/mongodb/mongo.log
   logAppend: true
 storage:
   dbPath: /usr/local/var/mongodb
 net:
   #127.0.0.1默认只能本机链接
   bindIp: 127.0.0.1
 
 #配置文件开启强制验证
 security:
   authorization: "enabled"

之后可以使用 brew services restart [email protected] 重启
或者使用mongd 启动(可以强制带上 auth参数) 如
mongod --config c:\mongodb\mongod.cfg --dbpath c:\mongodb\data\db\ --auth


通过命令设置超级管理员
设置 admin

use admin  
db.createUser({
  user: 'admin',  // 用户名
  pwd: '123456',  // 密码
  roles:[{
    role: 'root',  // 角色
    db: 'admin'  // 数据库
  }]
})

设置完成,可以输入 show users 查看是否设置成功。
开启验证

命令行 输入 mongo

MacBook-Pro:~ wuzz$ mongo
MongoDB shell version v4.2.9
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("ffee4847-fd10-4523-ae06-f4a8330db2dd") }
MongoDB server version: 4.2.9
>

显示连接成功,但是当我们输入其他指令时,会提示没有权限:(我这里没有记录显示)

> show dbs
>

登录数据库

// 方式一
mongo
use admin
db.auth('admin', '123456')

// 方式二
mongo admin -u admin -p 123456

这时候我们就可以正常访问和操作数据了。

> show dbs
> use admin
switched to db admin
> db.auth('admin','123456')
1
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
test    0.000GB
>

添加数据库用户

我们除了可以设置数据库的超级管理员以外,还可以给每个数据库设置单独的管理员。其只有操作单独数据的一定权限。

[
复制代码

](javascript:void(0); "复制代码")

use test // 跳转到需要添加用户的数据库
db.createUser({
user: 'fooadmin', // 用户名
pwd: '123456', // 密码
roles:[{
role: 'readWrite', // 角色
db: 'test' // 数据库名
}]
})

[
复制代码

](javascript:void(0); "复制代码")

常用命令

[
复制代码

](javascript:void(0); "复制代码")

show users // 查看当前库下的用户
db.dropUser('testadmin') // 删除用户
db.updateUser('admin', {pwd: '654321'}) // 修改用户密码
db.auth('admin', '654321') // 密码认证

[
复制代码

](javascript:void(0); "复制代码")

MongoDB 数据库默认角色

  1. 数据库用户角色:read、readWrite
  2. 数据库管理角色:dbAdmin、dbOwner、userAdmin
  3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
  4. 备份恢复角色:backup、restore
  5. 所有数据库角色: readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、
    dbAdminAnyDatabase
  6. 超级用户角色:root

你可能感兴趣的:(MongoDB 设置用户名密码和数据库连接)