mongodb配置服务及设置密码(windows系统版)

初始安装完成后,存在3个数据库,无密码。

mongodb配置服务及设置密码(windows系统版)

一、找到安装位置

mongodb配置服务及设置密码(windows系统版)

二、客户端登入,创建用户和密码

1、找到客户端mongo.exe

登陆命令是mongo.exe 数据库 -u 用户 -p 密码

不写参数默认登入test数据库,可以尝试插入数据看看效果

mongodb配置服务及设置密码(windows系统版)

2、创建用户和密码

命令是

use admin

db.createUser(

{

user: "root",

pwd: "123456",

roles: [ { role: "root", db: "admin" } ]

}

)

可以选择的role有:

角色说明:

Read: 允许用户读取指定数据库

readWrite: 允许用户读写指定数据库

dbAdmin: 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile

userAdmin: 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户

dbOwner: 允许在当前DB中执行任意操作

readAnyDatabase: 赋予用户所有数据库的读权限,只在admin数据库中可用

readWriteAnyDatabase: 赋予用户所有数据库的读写权限,只在admin数据库中可用

userAdminAnyDatabase:赋予用户所有数据库管理User的权限,只在admin数据库中可用

dbAdminAnyDatabase: 赋予管理所有数据库的权限,只在admin数据库中可用

root: 超级账号,超级权限,只在admin数据库中可用。

三、打开服务的密码验证选项

1、卸掉服务,然后按有密码方式install为系统服务

原始的服务配置是"C:\\Program Files\\MongoDB\\Server\\4.0\\bin\\mongod.exe" --config "C:\\Program Files\\MongoDB\\Server\\4.0\\bin\\mongod.cfg" --service

mongodb配置服务及设置密码(windows系统版)

可以在注册表中查询到,以便确定配置文件路径

sc delete MongoDB

2、删除成功后,重新配置服务

删除成功后,重新配置服务
mongod.exe --auth --config "指定路径的\\mongod.cfg" --install

例如:

mongod.exe --auth --config "C:\\Program Files\\MongoDB\\Server\\4.0\\bin\\mongod.cfg" --install

注意在管理器中把后台的服务进程关掉,否则日志文件打不开。

mongodb配置服务及设置密码(windows系统版)

四、创建其他用户等常用命令

每个库分别创建用户,在admin中创建的用户可以分配到其他库的权限,

创建用户

db.createUser(

{

user: "xxxx",

pwd: "123456",

roles: [ { role: "dbOwner", db: "目标库" } ]

}

)

注意,直接在admin库下创建其他库的用户是这样的

{

"_id" : "admin.yzd",

"user" : "yzd",

"db" : "admin",

"roles" : [

{

"role" : "dbOwner",

"db" : "test"

}

]

}

如果切换到其他库或者直接登入的是其他库,创建的用户是这样的

{

"_id" : "test.yzd",

"user" : "yzd",

"db" : "test",

"roles" : [

{

"role" : "dbOwner",

"db" : "test"

}

]

}

所以,创建用户建议切换到所在数据库上后再创建,否则还是属于admin库只是有其他库权限,无法直接登入目标库,需要先登入admin后再切换。

验证下密码设置是否成功,1表示登录成功,0表示登录失败

db.auth("root","123456")

列出当前库的用户

show users

列出所有库的用户

db.system.users.find().pretty()

删除单个用户 (root权限下)

db.system.users.remove({user:"XXXXXX"})

删除所有用户

db.system.users.remove({})

删除指定库用户(主要是避免不用库有同名用户)

db.system.users.remove({user:"用户",db:"库"})

修改密码

db.changeUserPassword('yzd','test')


分享到:


相關文章: