MongoDB 3.2-为特定数据库创建CRUD管理员
我正在尝试创建CRUD数据库管理员。 从我从官方文档中读到的内容来看,有一个角色readWrite,但我并没有真正了解创建管理员的过程 因此,我运行了MongoDB 3.2-为特定数据库创建CRUD管理员,mongodb,Mongodb,我正在尝试创建CRUD数据库管理员。 从我从官方文档中读到的内容来看,有一个角色readWrite,但我并没有真正了解创建管理员的过程 因此,我运行了mongod而没有--auth,并使用以下参数创建了一个用户: 使用myCustomDB db.createUser({ 用户:“snoop”, pwd:“粘性”, 角色:[{role:“readWrite”,db:“myCustomDB”}] }); 命令行回答成功添加了新用户等等。 但是当我进行身份验证时,它返回1,我认为这是真的。但当我运行命
mongod
而没有--auth
,并使用以下参数创建了一个用户:
使用myCustomDB
db.createUser({
用户:“snoop”,
pwd:“粘性”,
角色:[{role:“readWrite”,db:“myCustomDB”}]
});代码>
命令行回答成功添加了新用户等等。
但是当我进行身份验证时,它返回1,我认为这是真的。但当我运行命令,例如db.peops.find()
时,它会给我这个错误:错误:{“$err”:“无权查询myCustomDB.peops”,“co de”:13}
这可能是您的find调用。尝试以下格式:
db.getCollection('peops').find({})
如果不是这样,它可能是您的身份验证模式。这可能不是最好的方法,但我想我会与大家分享我设置超级管理员、特定于数据库的管理员和只读用户的步骤。所有大写字母应替换为相应的凭证/db名称:
1.更改Mongo安全方法
sudo service mongod start
mongo
use admin
db.system.version.remove({})
db.system.version.insert({ "_id" : "authSchema", "currentVersion" : 3 })
2.创建超级管理员用户
use admin
db.createUser( { user: "SUPERADMINUSER", pwd: "SUPERADMINPASS", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
3.创建具有读/写访问权限的数据库管理员
use DATABASE
db.createUser( { user: "DBADMIN", pwd: "DBPASSWORD", roles: [ { role: "userAdmin", db: "DATABASE" }, { role: "readWrite", db: "DATABASE" }] } )
db.createUser( { user: "DBREADONLYUSER", pwd: "DBREADONLYPASS", roles: [ { role: "read", db: "DATABASE" }] } )
4.在/etc文件夹中编辑mongod.config
sudo service mongod stop
in mongod.config edit so that auth = true is not commented out.
五,。重启mongo,安全措施到位
sudo service mongod start
***疑难解答:如果您正在运行mongo 3.2,您可能会跳过db.system.version remove和insert命令,您可能希望/需要升级到SCRAM-SHA-1,如果需要,请运行db.adminCommand({authSchemaUpgrade:1});在security:中编辑/etc/mongod.conf文件而不是auth=true注释时,使用如上所示的相同方式设置用户,并添加authorization=true,如下所示:
security:
authorization: enabled
这可能是你的电话。尝试以下格式:
db.getCollection('peops').find({})
如果不是这样,它可能是您的身份验证模式。这可能不是最好的方法,但我想我会与大家分享我设置超级管理员、特定于数据库的管理员和只读用户的步骤。所有大写字母应替换为相应的凭证/db名称:
1.更改Mongo安全方法
sudo service mongod start
mongo
use admin
db.system.version.remove({})
db.system.version.insert({ "_id" : "authSchema", "currentVersion" : 3 })
2.创建超级管理员用户
use admin
db.createUser( { user: "SUPERADMINUSER", pwd: "SUPERADMINPASS", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
3.创建具有读/写访问权限的数据库管理员
use DATABASE
db.createUser( { user: "DBADMIN", pwd: "DBPASSWORD", roles: [ { role: "userAdmin", db: "DATABASE" }, { role: "readWrite", db: "DATABASE" }] } )
db.createUser( { user: "DBREADONLYUSER", pwd: "DBREADONLYPASS", roles: [ { role: "read", db: "DATABASE" }] } )
4.在/etc文件夹中编辑mongod.config
sudo service mongod stop
in mongod.config edit so that auth = true is not commented out.
五,。重启mongo,安全措施到位
sudo service mongod start
***疑难解答:如果您正在运行mongo 3.2,您可能会跳过db.system.version remove和insert命令,您可能希望/需要升级到SCRAM-SHA-1,如果需要,请运行db.adminCommand({authSchemaUpgrade:1});在security:中编辑/etc/mongod.conf文件而不是auth=true注释时,使用如上所示的相同方式设置用户,并添加authorization=true,如下所示:
security:
authorization: enabled