数据库-nosql-mongodb管理

本文详细介绍了MongoDB的用户管理,包括如何创建和删除用户,特别是创建管理员用户和应用用户的过程。此外,还讨论了数据的导入导出,如使用mongoexport和mongoimport,以及从MySQL迁移到MongoDB的方法。同时,提到了MongoDB的数据备份与恢复工具mongodump和mongorestore,并比较了它们与mongoexport/mongoimport的区别。最后,文章提及了MongoDB的监控工具mongostat和mongotop及其应用场景。
摘要由CSDN通过智能技术生成

用户管理

read 					允许用户读取指定数据库
readWrite		    	允许用户读写指定数据库
dbAdmin 				允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin 				允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin 			只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase 		只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase 	只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase 	只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase 		只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root 					只在admin数据库中可用。超级账号,超级权限

用户创建

{
   
user: "<name>",           				用户的名字    
pwd: "<cleartext password>", 			用户的密码
customData: {
    <any information> }, 		任意内容,可为用户全名的介绍
roles: [ 								指定用户的角色,可以用一个空数组给新用户设定空角色
	{
    role: "<role>",					可以指定内置角色和用户自定义角色
	  db: "<database>" } | "<role>", 
	  ... 
	  ]
}	 

创建管理员用户

MongoDB Enterprise > use admin
switched to db admin
MongoDB Enterprise > db.createUser(
... {
   
... user:'root',
... pwd:'123456',
... roles:[{
   role:'root',db:'admin'}]
... }
... )
Successfully added user: {
   
	"user" : "root",
	"roles" : [
		{
   
			"role" : "root",
			"db" : "admin"
		}
	]
}

注意: 创建管理员角色用户的时候,必须到admin下创建。 删除的时候也要到相应的库下操作。

查看创建完用户后的collections;
show tables
show users  查看创建的管理员用户 
MongoDB Enterprise > show tables;
system.users
system.version

MongoDB Enterprise > show users;
{
   
	"_id" : "admin.root",
	"user" : "root",
	"db" : "admin",
	"roles" : [
		{
   
			"role" : "root",
			"db" : "admin"
		}
	]
}
验证用户是否能用
MongoDB Enterprise > db.auth('root','123456')
1
用户创建完成后在配置文件中开启用户验证
修改配置文件
[root@node1 ~]# vim /etc/mongod.conf 
security:
  authorization: enabled

重启服务
[root@node1 ~]# systemctl restart mongod.service 
测试用户验证
MongoDB Enterprise > show dbs
2021-02-03T18:27:41.929+0800 E QUERY    [thread1] Error: listDatabases failed:{
   
	"ok" : 0,
	"errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
	  ...

1、数据库内认证
MongoDB Enterprise > use admin
switched to db admin
MongoDB Enterprise > db.auth('root','123456')
1

2、数据库外认证
[root@node1 ~]# mongo -uroot -p123456 admin
MongoDB Enterprise > 

按生产需求创建应用用户

1、创建对某库的只读用户,在test库创建只读用户
MongoDB Enterprise >  db.createUser(
... {
   
...  user:'test',
...  pwd:'123456',
...  roles:[{
   role:'read',db:"test"}]
...  }
...  )

测试:
MongoDB Enterprise > db.auth("test",'123456')
1
MongoDB Enterprise > show users;
{
   
	"_id" : "test.test",
	"user" : "test",
	"db" : "test",
	"roles" : [
		{
   
			"role" : "read",
			"db" : "test"
		}
	]
}
MongoDB Enterprise > show collections;
user


2、创建对app为读写权限,对test库为只读权限的用户
MongoDB Enterprise > use app
switched to db app
MongoDB Enterprise >  db.createUser( 
...  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值