mongo用户账号管理
来源:互联网 发布:双色球破解软件 编辑:程序博客网 时间:2024/05/18 11:47
一、概念理解
1、用户概念
mongodb的用户是由 用户名+所属库名组成
例如:
登录mongo testdb1 ,创建用户testuser
登录mongo testdb2 ,创建用户testuser
那上面创建的用户分别是:testuser@testdb1,testuser@testdb2
也就是说在哪个库下面创建用户,这个用户就是哪个库的
2、角色概念
Mongodb的授权采用了角色授权的方法,每个角色包括一组权限。
Mongodb已经定义好了的角色叫内建角色,我们也可以自定义角色。
这儿主要介绍内建角色,Mongodb内建角色包括下面几类:
读写权限: read/readWrite 读写库的权限
数据库管理角色: dbAdmin 某数据库管理权限
userAdmin 某数据库用户的管理权限,包括创建用户,授权的管理
dbOwner 某数据库的所有者,拥有该库的所有权限,包括readWrite,dbAdmin和userAdmin权限
集群权限 :
备份和恢复角色: bakcup restore
所有数据库角色: readAnyDatabase
readWriteAnyDatabase
dbAdminAnyDatabase
userAdminAnyDatabase
超级用户角色: root
内部角色 : __system 不建议使用
二、搭建认证环境和认证登录
1、找到mongodb配置文件,设置noauth=true
重启Mongodb后,登录admin账号,创建一个超级权限用户
use admin
db.createUser({user:'root',pwd:'root',roles:[{ "role" : "root", "db" : "admin" }]});
2、关闭mongodb
3、启用认证参数
要保证权限认证生效,需要在mongodb配置文件中加入auth=true,同时取消掉noauth=true
4、启动Mongodb
5、认证登录
> use admin
switched to db admin
> db.auth('root','root')
1
> use hong
switched to db hong
> show collections;
liujing
system.users
> db.liujing.find();
{ "_id" : ObjectId("56f255b77fa46acddeb4507b"), "name" : "liujing" }
三、用户授权详解
1、创建用户并授权
语法:db.createUser({user:"UserName",pwd:"Password",roles:[{role:"RoleName",db:"Target_DBName"}]})
首先选择在哪个库创建用户,如test:use test;
创建用户有3项需要提供:用户名,密码,角色列表
例如我要在test下面创建用testuser,密码为testpwd,角色列表包括test库的readWrite角色和userAdmin角色:
db.createUser({user:"testuser",pwd:"testpwd",roles:[{role:"readWrite",db:"test"},{role:"userAdmin",db:"test"}]})
2、修改密码
首先进入目标库:use test
db.changeUserPassword('testuser','testPWD');
3、添加角色
首先进入目标库:use test
db.grantRolesToUser( "testuser", [ { role: "read",db:"admin"} ] )
4、回收角色权限
首先进入目标库:use test
db.revokeRolesFromUser("testuser",[ { role: "read",db:"admin"} ] )
5、删除用户
首先进入目标库:use test
- mongo用户账号管理
- 用户账号管理基本概念
- Solaris 用户账号 管理
- Linux用户账号管理
- Linux 系统用户账号管理
- 9.5 管理用户账号:usermod
- Linux系统用户账号管理
- 7.3 MySQL用户账号管理
- mariadb 下管理用户账号
- Linux-bash-管理用户账号
- mongo shell 之文档 用户管理
- Linux学习笔记(四)账号管理之管理用户账号
- Linux系统用户账号的管理
- Linux系统用户账号的管理
- Linux下用户账号管理基础
- Linux系统用户账号的管理
- Redhat 关于用户账号管理_(3)
- Linux使用者管理(1)---用户账号
- 高性能MySQL——Count(1) OR Count(*)?
- Mybatis Dynamic Query 前言
- Java概述、Java语言基础、面向对象基础
- 后端框架
- C语言const
- mongo用户账号管理
- Poj1651 矩阵链乘
- js对象的可枚举性
- radio根据值选中
- 模态框获取datatable传过来的数据
- BZOJ3524[Couriers] 不带修改主席树裸题
- java中的static
- AngularJS服务之 Factory vs Service vs Provider
- Sass编译