环境:win10,MongoDB 3.6.13html
一、下载
官网:http://www.runoob.com/mongodb/mongodb-window-install.html
因为是在window下,因此我下载的是3.6.13-signed.msi,和普通安装软件exe同样mongodb
二、配置
安装以后,还须要配置,好比数据库的数据安装路径,日志路径等等。
MongoDB将数据目录存储在 db 目录下。可是这个数据目录不会主动建立,须要咱们在安装完成后须要手动建立。
为日志文件,数据文件和配置文件建立目录
配置文件目录:D:\MongoData\config\mongod.cfg
日志文件目录:D:\MongoData\dblog\
数据文件目录:D:\MongoData\db\
27017是默认端口!数据库
配置mongod.cfg,内容以下
systemLog:
destination: file
path: D:\MongoData\dblog\mongod.log
logAppend: true
storage:
journal:
enabled: true
dbPath: D:\MongoData\db
net:
port: 27017windows
#security:
#authorization: enabled
3.安装服务
配置好上面后,在到cmd中执行(使用管理员权限)
cmd进入mongodb的安装目录下的bin目录
cd C:\Program Files\MongoDB\Server\3.6\bin
mongod.exe --config "D:\MongoData\config\mongod.cfg" --install --serviceName "MongoDB"
能够看到windows服务管理界面多了一个MongoDB服务,设置启动模式为开机自动启动函数
启动mongodb服务
net start MongoDB
关闭mongodb服务
net stop MongoDB
删除Windows服务
方法1:普通cmd命令窗口
cd C:\Program Files\MongoDB\Server\3.6\bin
mongod.exe --config D:\MongoData\config\mongod.cfg --remove
方法2:在系统管理员窗口输入:sc delete MongoDB 工具
4.用MongoDB链接管理工具链接 好比Navicat Premium 12集成了MongoDB管理工具rest
五、用户权限设置
一、MongoDB是没有默认管理员帐号,因此要先添加管理员帐号,再开启权限认证。
二、切换到admin数据库,添加的帐号才是管理员帐号。
三、用户只能在用户所在数据库登陆,包括管理员帐号。
四、管理员能够管理全部数据库,可是不能直接管理其余数据库,要先在admin数据库认证后才能够。日志
建立管理员帐号
在admin数据库中,添加一个用户并赋予userAdminAnyDatabase角色。
例如,下面是在admin数据库中建立一个名为myUserAdmin用户。
注意:你建立用户的这个数据库(这里就是admin数据库)是用户认证数据库, 尽管用户是在这个数据库认证,而用户又有其余数据库的角色;即,用户认证数据库不限制用户权限。
在window管理员下启动cmd,而且链接上mongodb,
cd c:\Program Files\MongoDB\Server\3.6\bin
输入mongo.exehtm
建立用户命令
use admin
db.createUser(
{
user: "myadmin",
pwd: "123456",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
验证权限
db.auth("myadmin","123456") blog
6.开启权限验证
要开启配置文件mongod.cfg的authorization的权限
而后重启mongodb服务
7.添加普通用户
一、一旦通过认证的用户管理员,能够使用db.createUser()去建立额外的用户,你能够分配mongodb内置的角色或用户自定义的角色给用户。
二、这个myUserAdmin用户仅仅只有特权去管理用户和角色,myUserAdmin,若是你试图执行其余任何操做,例如在test数据库中的foo集合中去读数据,mongodb将返回错误。
三、你建立用户的数据库是该用户认证数据库。尽管用户认证是这个数据库,用户依然能够有其余数据库的角色。即用户认证数据库不限制用户权限。
进入到自定义的数据库中
use zns_db
执行
db.createUser(
{
user: "user1",
pwd: "123456",
roles: [
{ role: "dbOwner", db: "zns_db" },
]
}
)
验证权限
db.auth("user1","123456")
删除用户命令
//db.dropUser("user1")
MongoDB数据库角色
内建的角色
数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
备份恢复角色:backup、restore;
全部数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
内部角色:__system
角色说明: Read:容许用户读取指定数据库 readWrite:容许用户读写指定数据库 dbAdmin:容许用户在指定数据库中执行管理函数,如索引建立、删除,查看统计或访问system.profile userAdmin:容许用户向system.users集合写入,能够找指定数据库里建立、删除和管理用户 clusterAdmin:只在admin数据库中可用,赋予用户全部分片和复制集相关函数的管理权限。 readAnyDatabase:只在admin数据库中可用,赋予用户全部数据库的读权限 readWriteAnyDatabase:只在admin数据库中可用,赋予用户全部数据库的读写权限 userAdminAnyDatabase:只在admin数据库中可用,赋予用户全部数据库的userAdmin权限 dbAdminAnyDatabase:只在admin数据库中可用,赋予用户全部数据库的dbAdmin权限。 root:只在admin数据库中可用。超级帐号,超级权限