Windows下安装MongoDB并配置登陆验证

一、安装前创建文件目录

1.创建C:MongoDB目录。
2.创建C:MongoDBdata目录。
3.创建C:MongoDBlogs目录。
4.创建C:MongoDBlogsmongo.log文件。

二、官网下载安装

安装目录选择第一步创建的目录。

三、加入系统环境变量

C:MongoDBin

四、安装服务

1.创建配置文件C:MongoDBmongod.conf

#数据库路径  
dbpath=C:MongoDBdata  
#日志输出文件路径  
logpath=C:MongoDBlogsmongo.log  
#错误日志采用追加模式  
logappend=true
#启用日志文件,默认启用  
journal=true  
#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false  
quiet=true  
#端口号 默认为27017  
port=27017  
#密码验证  
#auth=true

2.安装服务

mongod --config "C:MongoDBmongod.conf" --install --serviceName "MongoDB"

3.启动

net start MongoDB

4.创建管理员

mongo
>use admin;
>db.createUser(
  { user: "admin",
    customData: {description: "superuser"},
    pwd: "password",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
);

5.创建超级管理员

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

角色具体说明:

注意:创建某个数据库用户时,应先use dataBaseName切换到对应数据库

Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
dbOwner:数据库拥有者,包含readWrite、dbAdmin、userAdmin
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限
root:只在admin数据库中可用。超级账号,超级权限

五、配置登陆验证

1.取消注释

配置文件C:MongoDBmongod.conf中的

#auth=true

2.重启服务加载配置文件

sc stop MongoDB
sc start MongoDB

3.测试

mongo
>use admin;
>db.auth("admin", "password");
1

P.S:

创建业务数据库管理员

>db.createUser({
    user:"user1",
    pwd:"123456",
    customData:{
        name:'coodyz',
        email:'coodyz@qq.com',
        age:20,
    },
    roles:[
        {role:"readWrite",db:"db001"},
        {role:"readWrite",db:"db002"},
        'read'// 对其他数据库有只读权限,对db001、db002是读写权限
    ]
});

修改密码

>use admin;
>db.changeUserPassword("username", "password");

修改密码和用户信息

>db.runCommand(
    {
        updateUser:"username",
        pwd:"password",
        customData:{title:"password"}
    }
);
原文地址:https://www.cnblogs.com/coodyz/p/12219823.html