mongodb用户权限操作常用命令

由于公司还有几台mongodb的数据库,需要开放某部分权限给外部人员使用,所以这里记录一下,仅供需要的朋友使用。

1. MongoDB常用命令

[[email protected] ~]# ps -ef|grep mongod
[[email protected] ~]# mongo --host=127.0.0.1 --port=27017
MongoDB shell version: 3.2.7
connecting to: 127.0.0.1:27017/test

> show dbs  #显示数据库列表 
> show collections  #显示当前数据库中的集合(类似关系数据库中的表)
> show users  #显示用户
> use <db name>  #切换当前数据库,如果数据库不存在则创建数据库。 
> db.help()  #显示数据库操作命令,里面有很多的命令 
> db.foo.help()  #显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令 
> db.foo.find()  #对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据) 
> db.foo.find( { a : 1 } )  #对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1

> db.dropDatabase()  #删除当前使用数据库
> db.cloneDatabase("127.0.0.1")   #将指定机器上的数据库的数据克隆到当前数据库
> db.copyDatabase("mydb", "temp", "127.0.0.1")  #将本机的mydb的数据复制到temp数据库中
> db.repairDatabase()  #修复当前数据库> db.getName()  #查看当前使用的数据库,也可以直接用db
> db.stats()  #显示当前db状态
> db.version()  #当前db版本> db.getMongo()  #查看当前db的链接机器地址
> db.serverStatus()  #查看数据库服务器的状态

2. MongoDB数据库角色

内建的角色 
数据库用户角色:read、readWrite; 
数据库管理角色:dbAdmin、dbOwner、userAdmin; 
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager; 
备份恢复角色:backup、restore; 
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase 
超级用户角色:root // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase) 
内部角色:__system 
角色说明: 
Read:允许用户读取指定数据库 
readWrite:允许用户读写指定数据库 
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile 
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户 
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。 
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限 
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限 
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限 
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。 
root:只在admin数据库中可用。超级账号,超级权限

3. 授权步骤

>mongo --host 127.0.0.1 --port 27018
>use dbname;
>db.createUser({user:"root",pwd:"root123",roles:["userAdminAnyDatabase"]})
Successfully added user: { "user" : "root", "roles" : [ "userAdminAnyDatabase" ] }
这个例子创建了一个名为 root 的用户管理员。创建完了这个用户之后,我们应该马上以该用户的身份登录:
> db.auth("root","root123")
1
db.auth() 方法返回 1 表示登录成功。接下来我们为指定的数据库创建访问所需的账号。

注意:使用密码策略需要先在配置文件中增加 auth=true。并且mongo在从模式下面是不允许操作密码策略的,主要应该是属于只读模式,只负责同步master上面的数据

原文地址:http://blog.51cto.com/nanfeibobo/2128033

时间: 2024-10-14 12:20:01

mongodb用户权限操作常用命令的相关文章

linux命令之文件系统权限操作常用命令

1.   umask:设置权限掩码 语法:umask [参数] 命令说明:umask可以单独使用,可以设置目录与文件的默认权限,默认权限掩码是022,所以默认目录权限是777-022=755,读权限是4,写权限是2,执行权限是1,第一个7是所有者的权限,第二个5是所属组的权限,第三个是其他人的权限,而新建的文件就是666-022=644, 参数说明:你要查看或设置的文件或目录的权限掩码 命令示例:单独使用umask显示为0022,第一个数表示八进制数,可忽略不计,但可以自行设置 如:umask

Mysql数据库操作常用命令

转自微信公众号“MySQL数据库”:http://mp.weixin.qq.com/s?__biz=MzIyNjIwMzg4Ng==&mid=2655293044&idx=1&sn=e312934e5115105fdbe5da12af150276&scene=0#wechat_redirect [全了]Mysql数据库操作常用命令 2016-07-21 MySQL数据库 1.MySQL常用命令 create database name; 创建数据库 use database

windows下 安装 rabbitMQ 及操作常用命令(转)

windows下 安装 rabbitMQ 及操作常用命令 rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rabbit MQ 是建立在Erlang OTP平台上. 1.安装Erlang 所以在安装rabbitMQ之前,需要先安装Erlang . 小编使用的是otp_win64_18.1 ,需要其他版本或者32位系统的,可以去官网下载. 全部点击"下一步

MySql 管理操作常用命令

登陆mysql mysql -u username -p 创建用户名配置权限,这里为该用户配置tablename表的全部权限,也可以指定 GRANT ALL PRIVILEGES ON tablename.* TO 'username'@'hostname' IDENTIFIED BY 'password'; 删除用户权限,使用revoke操作 REVOKE ALL PRIVILEGES ON table.* FROM 'username'@'host'; 删除一个用户 DROP USER ‘u

MongoDB基本概念和常用命令

MongoDB基本概念和常用命令 Mongo DB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐.Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo DB中 每一条记录都是一个Document对象.Mongo DB最大的优势在于所有的数据持久操作都无需开发人员手动编写SQL语句,直接调用方法就可以轻松的实现CRUD操作. NoSQL数据库与传统的关系型数据库相比,它具有操作简单.完全免费.源码公开.随时下载等特点,并

数据库操作常用命令

1.链接数据库: mysql -h localhsot -u root -p 2.显示MySql中的数据库: show databases; 3.进入数据库: use (数据库名称); 4.查看数据库中的表: show tables; 5.显示表结构: desc (表名称); 6.创建数据库: create badabase (数据库名); 7.创建表: create table products( id int not null auto_increment, cid int not null

Mongodb用户权限管理配置

一.Mongodb命令 主要命令 show dbs #显示数据库列表 show collections #显示当前数据库中的集合(类似关系数据库中的表) show users #显示用户 use <db name> #切换当前数据库,如果数据库不存在则创建数据库. db.help() #显示数据库操作命令,里面有很多的命令 db.foo.help() #显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令 db.foo.find() #对于当前

Linux_用户级_常用命令(1)

开篇语:懒是人类进步的源动力 本文原创,专为光荣之路公众号所有,欢迎转发,但转发请务必写出处! Linux常用命令第一集包含命令:ls 一.何为常用命令 人和系统交互的指令集合,构成了shell.Shell面向于用户,内嵌于操作系统,用户通过shell命令指挥操作系统,进而利用硬件资源完成一系列任务. Shell分为很多种类,常见的有csh.ksh和bash.其中本系列的所有命令和截图都是在操作系统CentOS上完成的,CentOS默认使用bash. 所谓的常用命令,其实就是bash中使用率较高

mongodb用户权限配置

第一次安装monogdb时,admin数据库中没有任何用户,此时不管是否以--auth方式启动数据库,其他数据库(比如test数据库)中的用户都可以对另外的数据库(比如db1数据库)中的数据进行操作~! > show dbs local   (empty) #查看admin 数据库中的用户信息,因为是刚建立的数据库所以user 为空~! > use admin switched to db admin 通过db.createUser()创建: db.createUser( { user:&qu