初始安装完成后,存在3个数据库,无密码。
1、找到客户端mongo.exe
登陆命令是mongo.exe 数据库 -u 用户 -p 密码
不写参数默认登入test数据库,可以尝试插入数据看看效果
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
可以在注册表中查询到,以便确定配置文件路径
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
注意在管理器中把后台的服务进程关掉,否则日志文件打不开。
四、创建其他用户等常用命令每个库分别创建用户,在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')
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved