2.2. MongoDB 管理

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介:

2.2.1. Security and Authentication

开启认证

# vim /etc/mongodb.conf
auth = true
		

重载配置文件

# /etc/init.d/mongod reload
Stopping mongod:                                           [  OK  ]
Starting mongod:                                           [  OK  ]
		

2.2.1.1. 超级管理员

Database Administration Roles
			
use admin;
db.createUser(
   {
     user: "admin",
     pwd: "WkAFdmfVQpP1oAEkz4YVlMCDxkG36TAi",
     roles: [ "dbAdmin", "dbOwner", "userAdmin" ]
   }
);
			
			

2.2.1.2. 数据库访问用户

注意,只有创建了超级管理后,下面的操作才会生效

MongoDB

			
use products
db.createUser(
   {
     user: "accountUser",
     pwd: "password",
     roles: [ "readWrite", "dbAdmin" ]
   }
)
			
			

早期版本

			
> use neo
switched to db neo
> db.addUser('neo','chen')
{
        "user" : "neo",
        "readOnly" : false,
        "pwd" : "68ace374737253d87e0ec91d4fcb673d"
}

> db.system.users.find()
{ "_id" : ObjectId("4c481404b9db6474d2fcb76f"), "user" : "neo", "readOnly" : false, "pwd" : "68ace374737253d87e0ec91d4fcb673d" }

> db.auth('neo','chen')
1
			
			

2.2.1.3. 数据库监控用户

			
db.createUser(
   {
     user: "monitor",
     pwd: "netkiller",
     roles: [ "clusterMonitor"]
   }
)			
			
			

2.2.1.4. 删除用户

Deleting Users 删除用户

To delete a user:

			
> db.getUsers();
[
	{
		"_id" : "test.monitor",
		"user" : "monitor",
		"db" : "test",
		"roles" : [
			{
				"role" : "dbOwner",
				"db" : "test"
			}
		]
	}
]
			
> db.dropUser('monitor')
ture

> db.getUsers();
[ ]
						
			

早期版本

			
db.system.users.remove( { user: username } )
			
			

2.2.1.5. 更新角色

			

db.updateUser( "monitor",
   {
     roles: [ "read", "clusterMonitor" ]
   }
)
			
			

2.2.2. Unique Indexes

增加索引:1(ascending),-1(descending)

2.2.2.1. 索引管理

增加索引

db.foo.ensureIndex({firstname: 1, lastname: 1}, {unique: true});
		

索引子对象

		
db.logging.users.ensureIndex({address.city:1})
		
		

查看索引信息

db.logging.getIndexes()
[
	{
		"v" : 1,
		"key" : {
			"_id" : 1
		},
		"ns" : "logging.logging",
		"name" : "_id_"
	}
]
		

db.logging.users.getIndexKeys()

[ { "_id" : 1 }, { "name" : 1 } ]
		

根据索引名删除索引

		
> db.logging.users.dropIndex('name_1')
{ "nIndexesWas" : 2, "ok" : 1 }

> db.logging.users.getIndexKeys()
[ { "_id" : 1 } ]
		
		
2.2.2.1.1. 唯一索引
db.members.createIndex( { "user_id": 1 }, { unique: true } )
			
			
> db.apple.createIndex({"devicetoken":1},{unique: true})
{
	"createdCollectionAutomatically" : false,
	"numIndexesBefore" : 1,
	"numIndexesAfter" : 2,
	"ok" : 1
}
			





原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
7月前
|
缓存 NoSQL Java
Spring Session MongoDB管理会话
Spring Session MongoDB管理会话
60 0
|
9月前
|
NoSQL MongoDB 数据库
mongodb用户权限管理
用户权限管理简要说明
610 0
|
NoSQL MongoDB 数据库
分布式服务器框架之Server.Core库中实现YFUniqueEntity、YFUniqueIDBase 管理MongoDB 自定义Id的自增
YFUniqueEntity是数据库中的结构,GetUniqueID函数中会根据Type和自增步长去数据库中寻找该类型的当前ID是多少,然后会用当前的Id去加上步长,把更新后的新ID插入到MongoDB中记录着ID的那张表里。
|
SQL NoSQL MongoDB
分布式服务器框架之Servers.Core库中实现MongoDB对象实体类 管理对象ID
MongoDB中的ID是一个hash码,和传统的关系数据库相比MongoDB没有办法实现ID的自增,如果需要ID自增的话,所以要自己管理ID,并且把对应类型的ID写入到一个专门的Collection(其实就是Sql中的Table)里面去,每次创建新对象的时候,都要取到该类型当前的ID,然后在这个基础上+1,比如当前是角色的ID是1,又创建了一个新的角色,要在原来的基础上+1 ID=2。今天先把MongoDB的对象实体基类实现了。
|
NoSQL MongoDB 数据库
MongoDB 用户角色管理
MongoDB 服务默认是没有账号密码的,客户端连接上即可进行各种操作。如果在配置文件中,指定了auth=true,即开启了认证,那么客户端连接后需要认证才能执行操作。
MongoDB 用户角色管理
|
存储 JSON NoSQL
4.0版本以上mongodb在Windows下载安装-添加Windows服务-安装可视化工具管理数据教程
4.0版本以上mongodb在Windows下载安装-添加Windows服务-安装可视化工具管理数据教程
158 0
4.0版本以上mongodb在Windows下载安装-添加Windows服务-安装可视化工具管理数据教程
|
NoSQL 前端开发 数据库
node MongoDB做管理后台接口(注册登录)
知识点 1、node 2、express 3、Mongoose 4、ES6 连接数据库 mongodb的地址我们一般需要配置在config文件中,做环境隔离,毕竟我们开发、测试、准生产、生产环境连接的数据库地址是不一样的,配置在config文件中,我们直接通过启动命令或者打包命令就可以切换到我们需要的mongodb地址,是开发必不可少的。
2250 0
|
监控 NoSQL
MongoDB副本集--管理命令
这篇文档主要介绍MongoDB副本集的日常查看和管理的命令. 1)命令行的查看命令:db.serverCmdLineOpts() 点击(此处)折叠或打开 arps:SECONDARY> db.
1050 0