Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB 3.2-为特定数据库创建CRUD管理员_Mongodb - Fatal编程技术网

MongoDB 3.2-为特定数据库创建CRUD管理员

MongoDB 3.2-为特定数据库创建CRUD管理员,mongodb,Mongodb,我正在尝试创建CRUD数据库管理员。 从我从官方文档中读到的内容来看,有一个角色readWrite,但我并没有真正了解创建管理员的过程 因此,我运行了mongod而没有--auth,并使用以下参数创建了一个用户: 使用myCustomDB db.createUser({ 用户:“snoop”, pwd:“粘性”, 角色:[{role:“readWrite”,db:“myCustomDB”}] }); 命令行回答成功添加了新用户等等。 但是当我进行身份验证时,它返回1,我认为这是真的。但当我运行命

我正在尝试创建CRUD数据库管理员。 从我从官方文档中读到的内容来看,有一个角色readWrite,但我并没有真正了解创建管理员的过程

因此,我运行了
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