# 问题 mongoDB的默认登陆时无密码登陆的,为了安全起见,需要给mongoDB设置权限登录,但是keystoneJS默认是无密码登陆的,这是需要修改配置来解决问题 # 解决 在keystone.js...中找到配置初始化方法,添加一个mongo 对象来设置mongoDB连接实例, keystone.init({ 'name': 'recoluan', 'brand': 'recoluan',...'mongo': 'mongodb://user:password@host:port/dbName', }); 1 2 3 4 5 复制 这里需要注意的是,mongoDB在设置权限登录的时候,首先必须设置一个权限最大的主账户...,它用来增删其他普通账户,记住,这个主账户时 无法 用来设置mongo对象的, 你需要用这个主账户创建一个数据库(下面称“dbName”),然后在这个dbName上再创建一个可读写dbName的普通账户...,这个普通账户的user和password和dbName用来配置mongo对象
如果未指定任何值,则任何用户都可以修改任何数据库。我们将在本指南的后面解释如何创建数据库用户并设置其权限。 有关如何在配置文件中自定义这些值和其他值的更多信息,请参阅MongoDB官方配置教程。...它被定义为所有数据库的用户管理员,但本身没有任何数据库权限。你可以使用它来创建其他用户并定义他们的角色。如果你使用MongoDB在多个应用程序中,请为其相应的数据库设置具有自定义权限的不同用户。...此示例example-user使用user-data数据库的只读权限创建用户,并具有exampleDB我们将在下面的“ 管理数据和集合”部分中创建的数据库的读写权限。...这个例子叫它exampleDB: use exampleDB 确保此数据库名称与用户具有读写权限的数据库名称相对应(我们在上一节的步骤7中添加了这些权限)。...额外的MongoDB功能 如上所述,MongoDB有一组可用的特定于语言的驱动程序,可用于在非JavaScript应用程序中与你的数据库进行交互。
用户的角色,有如下几种: 1.Read:允许用户读取指定数据库 2.readWrite:允许用户读写指定数据库 3.dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile...4.userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 5.clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限...6.readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限 7.readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限 8....userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 9.dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的...","123") 做完这两步之后再执行查询操作就没有任何问题了,但是此时如果执行插入操作会提示没有权限,那我们可以创建一个有读写功能的用户执行相应的操作,这里就不再赘述。
,可以在指定数据库里创建、删除和管理用户 dbAdmin 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile clusterAdmin 必须在admin数据库中定义...,赋予用户所有数据库的读写权限 userAdminAnyDatabase 必须在admin数据库中定义,赋予用户所有数据库的userAdmin权限 dbAdminAnyDatabase 必须在admin...数据库中定义,赋予用户所有数据库的dbAdmin权限 root 必须在admin数据库中定义,超级账号,超级权限 1.2、创建管理用户 MongoDB有一个用户管理机制,简单描述为管理用户组,这个组的用户是专门为管理普通用户而设的...管理员通常没有数据库的读写权限,只有操作用户的权限,我们只需要赋予管理员userAdminAnyDatabase角色即可。另外管理员账号必须在admin数据库下创建。...1.3.1、管理员登录数据库 #切换到admin数据库 use admin #身份认证 db.auth("pbinlog","pbinlog") 1.3.2、创建数据库 MongoDB没有特定的创建数据库的语法
与我们经常使用的 SQL Server 或是 MySQL 不同,MongoDB 中的权限是针对每一个数据库的,也就是说我们需要为使用到的数据库创建用户并配置权限。 ...MongoDB 内置的用户角色权限: read:允许用户读取授权的数据库 readWrite:允许用户读写授权的数据库 dbAdmin:允许用户在授权的数据库中执行管理操作,如索引创建、删除...数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。 ...readAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的读权限 readWriteAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的读写权限 ...userAdminAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的 userAdmin 权限 dbAdminAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的
mongodb密码和传统数据如mysql等有些区别: mongodb的用户名和密码是基于特定数据库的,而不是基于整个系统的。...: "userAdminAnyDatabase", db: "admin" }] }) mongodb中的用户是基于身份role的,该管理员账户的 role是 userAdminAnyDatabase...重启mongodb sudo service mongod restart 进入mongodb,用第3步的 管理员账户登录,用该账户创建其他数据库管理员账号 use admin db.auth(...,拥有最高该数据库最高权限。...: [{ role: "readWrite", db: "yourdatabase" }] }) 该用户用于该数据的读写,只拥有读写权限。
四、认证授权(MongoDB创建用户个库) 4.1、简介 MongoDB 服务器进程默认启动后,并无任何认证机制,即任何用户都可随意连接数据库进行读写操作。...MongoDB 有个比较特殊的数据库 admin, 专门用来存储数据库管理员信息的。在 MongoDB 里是有不同的角色的,每种角色只能拥有相应的权限,用户也能自定义角色。...官方详解 4.2、认证授权步骤 为了启用认证机制,我们需要创建两个用户:拥有 userAdminAnyDatabase 角色的用户、对应数据库读写权限 readWrite 的用户,如: 先启动不需要认证的服务器进程...五、MongoDB权限 1)数据库用户角色:read、readWrite read:允许用户读取指定数据库 readWrite:允许用户读写指定数据库 2)数据库管理角色:dbAdmin... readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限 userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的
如果未指定任何值,任何用户都可以修改任何数据库。我们将在本教程的后面讲解如何创建数据库用户并设置其权限。 有关如何 在配置文件中自定义这些值和其他值的更多信息,请参阅MongoDB官方配置教程。...它被定义为所有数据库的管理员,但本身没有任何数据库权限。您可以使用它来创建其他用户并定义他们的角色。如果用MongoDB完成多个应用程序,请为其相应的数据库设置具有自定义权限的不同用户。...此示例中使用的example-user对user-data数据库具有只读权限,但对下面的“数据集合管理”部分中创建的数据库exampleDB有读写权限。 创建一个新的非管理员账户以输入测试数据。...不妨叫它exampleDB:use exampleDB 确保此数据库具有读写权限(我们在上一部分的步骤7中添加的权限)。 要显示当前工作数据库的名称,请运行db命令。...额外功能 如上所述,MongoDB有一组特定语言的驱动程序,可用在非JavaScript程序中与数据库交互。
MongoDB的权限控制MongoDB的权限控制是通过用户角色来实现的。每个角色都有一组特定的权限,可以授予用户或其他角色。...以下是MongoDB的一些常见角色:数据库用户角色(Database User Roles)这些角色可以授予用户对数据库的特定权限,例如读取、写入、更新或删除文档。...read:只读权限,用户可以读取数据库中的数据。readWrite:读写权限,用户可以读取和写入数据库中的数据。dbAdmin:数据库管理权限,用户可以管理数据库的集合和索引。...userAdmin:用户管理权限,用户可以创建和管理其他用户。...readAnyDatabase:读取任意数据库的权限。readWriteAnyDatabase:读写任意数据库的权限。userAdminAnyDatabase:用户管理任意数据库的权限。
用户名:simpleUser 密码:simplePass 权限:读写数据库 foo, 只读数据库 bar。...,启用身份验证,默认的连接方式依然会有超级权限 2.4 内建角色 Read:允许用户读取指定数据库 readWrite:允许用户读写指定数据库 dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建...readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限 readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限 userAdminAnyDatabase...:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。...3.0 用户创建 Mongodb Authentication 结语 在使用数据库的过程中,一定要注意安全风险,由于 Mongodb 的默认配置,使得数据库有入侵风险,应该予以防范。
,即使在其他数据库中创建了用户,启用身份验证,默认的连接方式依然会有超级权限 2.4 内建角色 Read:允许用户读取指定数据库 readWrite:允许用户读写指定数据库 dbAdmin:允许用户在指定数据库中执行管理函数...,如索引创建、删除,查看统计或访问system.profile userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 clusterAdmin:只在admin...数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。...readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限 readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限 userAdminAnyDatabase...:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
1.3 授权 数据库管理员负责向用户授予或拒绝对数据库资源进行操作的权限。通过使用角色,我们可以指定对资源执行什么操作。因此,角色是授予用户使用特定资源执行特定任务的权限。...资源←动作←角色(权限)→用户 MongoDB提供内置角色,还允许您根据数据库的特定需求定义新的角色。这些角色是根据对资源的操作来定义的。...要做到这一点,你需要: 启用访问控制 连接到localhost接口 在管理数据库中创建第一个用户,该用户必须具有足够的权限来管理其他用户和角色。...2.3 如何创建用户 在创建MongoDB用户之前,有必要考虑一下用户将要执行的任务。可能会有几个具有相同权限级别的用户,所以最明智的选择是创建一个角色并将其分配给每个用户。...角色定义角色成员可以执行的任务,以及可以执行这些任务的资源。MongoDB为最常见的情景提供内置角色。但是,也允许我们根据自己的特定需求创建自己的角色。每个角色的作用域都限定在创建它的数据库中。
解决办法:在admin数据库中通过创建一个用户,赋予用户root权限。...注:只能查看当前数据库中的用户,哪怕当前数据库admin数据库,也只能查看admin数据库中创建的用户。...详解 Read:允许用户读取指定数据库 readWrite:允许用户读写指定数据库 dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile userAdmin...:只在admin数据库中可用,赋予用户所有数据库的读权限 readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限 userAdminAnyDatabase:只在...admin数据库中可用,赋予用户所有数据库的userAdmin权限 dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限 root:只在admin数据库中可用
以下是在数据库中实现安全性的最佳实践 1、启用访问控制——创建用户,以便在访问MongoDB上的数据库时强制所有应用程序和用户具有某种身份验证机制。...2、配置基于角色的访问控制——有时可能需要对权限进行逻辑分组,可以在角色中进行分组。然后可以将用户分配给这些角色。 3、尝试将MongoDB配置为某种加密协议,如TLS或SSL。...2、用mongodump备份数据库——mongodump工具从MongoDB数据库中读取数据并创建高保真的BSON文件。...MongoDB Cloud Manager可以通过存储oplog数据来创建时间恢复点,这样它就可以在任何时刻为特定的复制集或分片集群创建恢复。... 使用createUser命令在数据库中创建用户。将特定的角色分配给用户,让他们对数据库本身具有特定的权限。 针对特定数据库的所有数据库添加管理员。
为了启用认证,需要先创建管理员用户,然后为其他用户创建角色和权限,并在连接到MongoDB时提供用户名和密码。...我们创建了一个名为“admin”的管理员用户,以及一个名为“user”的具有读写权限的用户。...在连接到MongoDB时,需要使用这些用户的用户名和密码进行身份验证。授权(Authorization)MongoDB的授权系统允许管理员为每个用户或角色指定特定的权限。...在默认情况下,用户没有任何特殊权限,只能读取自己创建的数据库。授权可以通过在MongoDB的角色中定义特定的权限来实现。...", db: "mydb" } ] })在上面的示例中,我们创建了一个名为“user”的用户,并为其指定了“readWrite”权限,这意味着该用户可以读取和写入“mydb”数据库中的所有文档。
将一个用户添加到这个数据库,且使它拥有 admin 库上的名为 dbAdminAnyDatabase 的角色权限,这个用户自动继承所有数据库的权限。...一些特定的服务器端命令也只能从这个数据库运行,比如关闭服务器。 local: local 数据库是不会被复制到其他分片的,因此可以用来存储本地单台服务器的任意 collection。...MongoDB 集合存在于数据库中,没有固定的结构,可以往集合插入不同格式和类型的数据。集合不需要事先创建。当第一个文档插入,或者第一个索引创建时,集合就会被创建。...MongoDB 读写策略 MongoDB 提供了一整套的机制让用户根据自己业务场景选择不同的策略来做到不同的高可用效果。...这里要说的就是 MongoDB 的读写策略,根据用户选取不同的读写策略,将会得到不同程度的数据可靠性和一致性保障。
: 用户名:spiders 密码:spiders@2018 权限:读写 spiders 数据库 内建角色 1.角色介绍 数据库用户角色:read、readWrite 数据库管理角色:dbAdmin、dbOwner...dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问 system.profile userAdmin:允许用户向 system.users 集合写入,可以找指定数据库里创建...、删除和管理用户 clusterAdmin:只在 admin 数据库中可用,赋予用户所有分片和复制集相关函数的管理权限 readAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的读权限...readWriteAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的读写权限 userAdminAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的...userAdmin 权限 dbAdminAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的 dbAdmin 权限 root:只在 admin 数据库中可用。
1.1文档数据库 MongoDB 中的记录是一个文档,它是由字段和值对组成的数据结构。MongoDB 的文档格式是类似于 JSON 对象的 BSON 文档。...嵌入式文档和数组减少了对昂贵连接的需求。 动态模式支持流畅的多态性。 集合/视图/按需实例化视图 MongoDB 将文档存储在集合中,集合类似于关系型数据库中的表。...创建用户 创建名为mongod的用户,用于安装、使用及管理 MongoDB: useradd mongod passwd mongod 设置用户 mongod 用户的 sudo 权限,详见《Hadoop...环境搭建及安装》的 2.4 节:设置用户及权限。...为 mongod 用户赋权 设置 mongod 用户对所创建的目录拥有读写权限: sudo chown -R mongod:mongod /opt/data/mongo/ sudo chown -R mongod
MongoDB认证和授权 要想了解MongoDB的权限必须先了解如下一些关键字: user: 用户,用于提供客户端连接MongoDB的认证账户; role: 角色,数据权限的集合,创建用户的时候必须要指定对应的角色...在MongoDB授权部分,其中admin数据库中的用户名可以管理所有的数据库,其他数据库中的用户只能管理其所在的数据库。...在权限以外,用户是无法访问系统的。 数据库角色在创建用户的role参数中设置。角色分为內建角色和自定义角色。 內建角色 MongoDB內建角色包括以下几类: 1....数据库管理员角色 dbAdmin:允许用户进行索引创建、删除,查看统计或访问system.profile,但没有角色和用户管理的权限; userAdmin:提供了在当前数据库中创建和修改角色和用户的能力...所有数据库角色 readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限; readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
领取专属 10元无门槛券
手把手带您无忧上云