MongoDB创建用户安全验证登录

1.MongoDB安装完成后,启动mongodb。

mongod --dbpath d:\mongodb\data\db


2.不要关闭mongodb服务窗口,新开cmd命令行窗口,以非验证形式进入mongodb。

mongo


3.创建用户,用户角色参考Built-In Roles

use admin;
db.createUser(
  {
     user: "root",
     pwd: "r123",
     roles: ["root"]
  }
);
db.auth("root", "r123");

db.createUser(
  {
     user: "sa",
     pwd: "r123",
     roles: [{role:"dbOwner", db:"navmap"}]
  }
);


4.先退出,然后使用sa帐号以验证形式进入mongodb。

D:\Program Files\MongoDB\Server\3.4\bin>mongo -u sa -p --authenticationDatabase navmap


5.授权

use navmap;
db.auth("sa", "r123");


6.插入一条数据(如果集合不存在则自动创建)

db.gwdata.insert({
  "gmac": "1",
  "uptime": "1",
  "cdate": "1",
  "imac": "1",
  "rssi": "1",
  "elec": "1",
  "temperature": "1"
});


7.查看表数据。

show tables;
db.gwdata.find();


总结:

admin中创建角色为 root 的用户,它拥有管理所有数据库用户角色的权限。而创建的 sa 用户,拥有数据库 navmap 数据库的所有权限。

将mongodb注册成服务: mongod.exe --config "mongod.conf" --install

其中配置参考官网

storage:
   dbPath: D:\mongodb\data\db #数据库路径
   indexBuildRetry: false #索引构建失败,mongod重启后将会删除尚未完成的索引,但是否重建由此参数决定。默认值为true。
   engine: wiredTiger #默认引擎WiredTiger支持document锁,mmapv1支持collections锁 
   wiredTiger:
      engineConfig:
         cacheSizeGB: 1 #wiredTiger缓存工作集(working set)数据的内存大小,单位:GB
   journal:
      enabled: true #启用日志文件,64位os默认启用
 systemLog:
   path: D:\mongodb\log\mongodb.log #日志输出文件路径
   destination: file
   logAppend: true #错误日志采用追加模式
   quiet: true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
 net:
   port: 27017 #端口号 默认为27017
   bindIp: 127.0.0.1 #绑定ip
   maxIncomingConnections: 200 #允许的最大连接数,默认值为65536.通常客户端使用连接池时可不设置
   wireObjectCheck: true #当客户端写入数据时,是否检测数据的有效性(BSON),如果数据格式不对,此insert、update操作将会被拒绝;默认值为true
   ipv6: false #是否支持mongos/mongod多个实例之间使用IPV6网络,默认值为false
 security:
   authorization: enabled #开启授权验证,用户只能访问已被授予权限的数据库资源和操作。
   javascriptEnabled:  false #启用或禁用服务器端JavaScript执行

展开阅读全文