MongoDb的权限控制

MongoDb的权限控制

  • 在 MongoDB 里确认一个用户的方式是某一数据库的某一用户,即A库的user1用户和B库的user1用户是两个用户。

  • 注意:在 admin 的数据库中创建的用户是超级管理员,登陆后可以操作任何的数据库。

  • MongoDB使用RBAC权限模型。

  • MongoDB可以使用多种认证机制,如:

    • SRAM(基于【用户名:密码】的形式,不需要重启的动态认证方式)(默认)
    • x.509 证书认证(数字证书)
    • LDAP代理身份认证
    • Kerberos身份认证

show dbs;  --查看所有数据库
use admin;	--切换到admin数据库
-- 创建用户并指定角色,和可以访问的数据库
-- 注意创建的角色只能在创建的库登录,创建用户的这个数据库称为该用户的认证数据库
db.createUser({
	user:'user',
	pwd:'passwd', 
	roles:[
		{
			role:'userAdminAnyDatabase', 
			db:'admin'
		}
	]
})
权限描述
read提供读取所有非系统集合的数据权限。
readWrite提供read角色和修改所有非系统集合的数据权限。
dbAdmin提供数据库管理的能力,例如与模式相关的任务、索引和收集统计信息。此角色不授予用户和角色管理权限。
dbOwner提供该数据库下所有权限操作能力。
userAdmin提供该数据库下用户和权限的创建和修改的操作能力。可以创建dbOwner权限。
clusterAdmin提供最大的集群管理访问。
clusterManager提供对集群的管理和监控操作。具有此角色的用户可以访问configlocal 数据库,分别用于分片和复制。
clusterMonitor提供对监控工具的只读访问。
hostManager提供监控和管理能力。
backup数据备份能力。
restore数据恢复能力。
readAnyDatabase与read相同但作用与全部数据库。
readWriteAnyDatabase同上。
userAdminAnyDatabase同上。
dbAdminAnyDatabase同上。
root超级管理员,简而言之,畅通无阻。
  • 当然也可以手动创建一个角色

  • 当创建了一个具有用户管理员权限的账户后,即可修改配置文件中的auth字段为true,启用权限认证。

更新用户:

db.updateUser(
   "username",
   {
      pwd: 'password',  // 或者使用passwordPrompt()后置密文输入密码
      customData: { title: "Senior Manager" }
   }
)

删除用户:

MongoDB的权限信息控制维护在System.user集合中,只需要删除对应的用户文档即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值