MongoDB授权
MongoDB采用基于角色的访问控制(RBAC)来管理访问到MongoDB系统。用户是被授予决定用户对可以对数据库资源和操作的访问一个或多个角色。没有角色分配,该用户不可以访问系统。
MongoDB中提供内置角色,对于一个通用的实例,每一个都有专门的用途。包话读, 读写, 数据库管理,和root角色.
管理员还可以创建新的角色和权限,以满足业务需求。管理员可以精确到分配集合级别的权限范围。
当授予一个角色,用户收到该角色的所有权限。在这种情况下,用户收到的各角色的所有权限的组合。
一、角色
角色是由权限的组合以允许对资源的操作。每个被直接定义在特权角色或从其他角色继承。
角色的权限适用于在其中创建角色的数据库。在管理数据库上创建的角色可以包括适用于所有数据库或群集的权限。
分配一个用户的角色获得该角色的所有权限。用户可以具有多个角色,并且可以对不同数据库有不同角色。
色总是授予权限和永远无限制地访问。例如,如果一个用户在一个数据库上有read和readWriteAnyDatabase角色,以大角色为准。
权限
一个指定资源的权限组成和在该资源上的活动许可。
一个权限权可以是一个数据库,集合,设备集,或群集中的任何一个。如果群集,附属的活动响的是系统状态,而不是特定的数据库或集合的状态。
一个动作是在资源上允许执行的一个命令或方法。一个资源可以有多个允许的动作。对于有效动作请参阅Privilege Actions.
例......
MongoDB2.6的配置文件详解
下面是一个MongoDB2.6的配置文件的一个实例:
#where to log
logpath=/var/log/mongodb/mongod.log
logappend=true
# fork and run in background
fork=true
#port=27017
dbpath=/data/mongoddata
# location of pidfile
pidfilepath=/var/run/mongodb/mongod.pid
# Listen to local interface only. Comment out to listen on all interfaces.
bind_ip=127.0.0.1
# Disables write-ahead journaling
# nojournal=true
# Enables periodic logging of CPU utilization and I/O wait
#cpu=true
# Turn on/off security. Off is currently the default
#noauth=true
#auth=true
# Verbose logging output.
#verbose=true
# Inspect all client data for validity on receipt (useful for
# developing drivers)
#objcheck=true
各个配置参数的解释如下:
说明:#在配置文件中代表注释符号,设置某个参数就去掉某个参数前面的#.
#where to log 日志保存位置或者说是目录
logpath=/var/log/mongodb/mongod.log
logappend=true #代表在原有日志文件基础上追加。
# fork and run in background
fork=true #启用后台模式
#port=27017 #Mongod端口号
dbpath=/data/mongoddata #数据库保存位置
# location of pidfile pidfile的本地保......
MongoDB的认证
认证是验证客户端的身份的过程。当启用时,MongoDB要求的所有客户端提供凭据来访问MongoDB的数据库。默认情况下,MongoDB的不需要验证。MongoDB的支持多种认证机制或方法,客户端可以用它来验证他们的身份。这些机制允许MongoDB的集成到现有的认证系统你的环境可用。MongoDB的默认身份验证方法是一种挑战和响应机制。MongoDB中也支持X509证书验证,LDAP代理身份验证和Kerberos身份验证。
MongoDB的要求对所有客户端的身份验证,包括在部署MongoDB的所有组件之间的连接。
认证是由不同的授权,这就决定了客户端的对资源和操作的访问。
一、验证机制和凭据存储
MongoDB的支持多种认证机制,以适应现有部署并使用现有的身份验证基础结构。要声明一个特定的身份验证机制,使用authenticationMechanisms参数。有关详细信息,请参阅启用客户端访问控制。
MongoDB-CR认证
MongoDB-CR是通过密码验证用户身份的质询-响应机制。MongoDB-CR在MongoDB默认启用不设置身份验证一个机制,在authenticationMechanisms参数。你也可以明确应用MongoDB-CR设置它作为authenticationMechanisms的值。当您启用的MongoDB-CR身份验证使用权限设置,MongoDB使用存储在admin数据库的system.users集合的凭据。
当您启用的ongoDB-CR认证使用的密钥文件的设置,你必须存储在每个mongod或mongos实例的密钥文件。 M......
MongoDB的安全概要
维护一个安全的MongoDB部署需要管理员实施控制,以确保用户和应用程序只能访问他们所需要的数据。MongoDB中提供的功能,允许管理员实现为MongoDB部署提供这些控制和限制。
如果你已经熟悉了MongoDB的安全性和安全实践,考虑安全检查清单中的推荐措施,以保护MongoDB的部署。
一、认证
接触到系统之前,所有的客户端应该认证自己的MongoDB。这将确保没有客户端可以访问存储在MongoDB中的没有被明确允许的数据。
MongoDB中包括两种机制:基于口令的验证和响应协议以及X.509证书。此外MongoDB中包含多个外部认证机制与现有的身份验证基础架构集成的支持。
当启用身份验证的MongoDB,MongoDB的所有连接将需要进行身份验证, 包括在部署的所有客户端和所有其他的MongoDB实例。请参阅身份验证的更多信息。
二、基于角色的访问控制
客户应该只能够执行履行其批准功能所需的操作。这是“最少重要特权,” 并限制一个应用程序破坏的潜在风险。
MongoDB的基于角色的访问控制系统,允许管理员控制所有接入,并确保所有授权访问狭义适用的可能。
MongoDB的权限包括一个动作,或用户可以执行的一组操作,和一个资源,或上下文中,用户可以执行该操作。用多个权限的组合来创建一个角色。并且用户可以有描述他们的访问一个或多个角色。MongoDB中提供了几个内置的角色和用户可以构建针对客户的实际需求的特定角色。
三......
WARNING: You are running on a NUMA machine
我们在用mongo连接mongodb服务时,可能会出现这样一个警告信息:WARNING: You are running on a NUMA machine。
要解决这个问题,我们可以这样做:
1.设置zone_reclaim_mode:
shell> echo 0 > /proc/sys/vm/zone_reclaim_mode
注:从MongoDB1.9.2开始:MongoDB会在启动时自动设置zone_reclaim_mode。
2. 像下面这样启动mongdb服务:
numactl --interleave=all mongod [other options]
[other options]是一些启动参数。例如:numactl --interleave=all mongod --config /etc/mongod.conf
如果提示找不到numactl命令,我们需要先安装它,安装方法:yum install numactl或者sudo yum install numactl.
服务启动后,在客户端我们再用mongo连接,发现已经没有"WARNING: You are running on a NUMA machine"的提示了。
......
近期文章
- python:object()函数
- mongodb数据备份用mongorestore恢复后没有数据
- mongodb roles
- windows2003远程桌面连接蓝屏,不显示桌面图标的解决办法。
- centos下apache gb2312页面中文乱码解决办法
- 设置mongodb做为windows服务自动运行
- windows2008中IIS7配置fastcgi+php
- 服务器连接远程桌面后无法看到桌面的解决办法
- iis日志导入sql server数据库
- 7-zip命令行参数详解
- iptables如何指定一个范围内的IP地址或端口
- mongod2.6服务无法启动,权限问题
- CentOS下编译安装mysql 5.1,支持中文(GBK)
- ERROR 1045 (28000): Access denied for user root@localhost(using password: YES)
- CentOs删除文件夹下所有文件及文件夹并保留该文件夹
- CentOS 6.4: Make Command not Found
- CentOS下安装成功mysql的提示信息
- mysql configure编译完成后的提示信息
- CentOS上安装gcc的方法
- MongoDB创建root角色用户(超级管理员)