说到mongodb就得先谈谈mongodb的用户组,和传统的关系型数据库不一样,mongodb并没有在创建应用时就要求创建权限管理组,所以类似于Robomongo这样的数据库可视化工具在创建connect时直接输入相应的address就可以直接访问和操作了,非常的方便,如下图。

mongodb控制用户权限 某个表 mongodb权限管理_数据库

  

  在谈用户组之前先简单的说说如何安装吧。

  1.新建 /apps 目录 mkdir /apps

  2.下载 mongodb-linux-x86_64-(版本号).tgz 至/apps文件目录下

  3.解压缩文件  tar xzf mongodb-linux-x86_64-(版本号).tgz 

  4.将解压后的文件重命名为mongodb mv mongodb-linux-x86_64-(版本号) mongodb

  5.创建目录与文件 :



mkdir -p  mongodb/data/db  创建mongodb 数据库保存路径

mkdir -p  mongodb/logs   创建mongodb日志文件目录

touch  mongodb/logs/mongodb.logs   创建日志的路径



  6.启动mongodb:



/apps/mongodb/bin/mongod --dbpath=/apps/mongodb/data/db --logpath=/apps/mongodb/logs/mongodb.logs --fork

注:这里解释下通过mongod启动mongodb   -dbpath=数据库路径  --logpath=日志路径  同时--fork很有必要  -fork 以后台Daemon形式运行服务(在后台运行)



  7.把mongodb服务加入随机启动:(相当于开机自动执行程序)  //这种方式是默认执行 之后会提到权限执行



(1).打开 vim /etc/rc.local
(2).添加如下代码
/apps/mongodb/bin/mongod --dbpath=/apps/mongodb/data/db/ --logpath=/apps/mongodb/logs/mongodb.log --logappend --port=27107  --fork
注:--logappend  指定日志生成方式(追加/覆盖),true 为日志为追加,默认为true, --port=27107  指定mongodb端口为 27107



  8.启动成功后 ps -ef | grep mongo 查看进程

mongodb控制用户权限 某个表 mongodb权限管理_mongodb控制用户权限 某个表_02

  Mongodb启动成功后用命令行运行一下  进入/apps/mongodb/bin  执行 ./mongo

 

mongodb控制用户权限 某个表 mongodb权限管理_shell_03

  进入mongoshell 默认进入test的数据库

 



简单命令
show dbs                 查询所有mongodb数据库
use                       数据库名 进入数据库(如果没有该数据库会自动创建)
db                         查看当前使用数据库
show collections             查看数据集合(collection 相当与mysql中的table)



  mongodb 初始时有一个test和local数据库

  此时 我们可以任意的新建数据库,建立集合,没有限制 Robomongo可视化数据库也可以连接

  Robomongo连接如下图,有种navicat for mysql的既视感

mongodb控制用户权限 某个表 mongodb权限管理_数据库_04

下面进行权限操作

  1. use admin

  2.db.addUser('smallbo','123456')  默认smallbo 为超级用户

mongodb控制用户权限 某个表 mongodb权限管理_开发工具_05

  3.建立好了超级用户后用Robomongo 还是不用输入账号和密码就可以连接mongodb 以及所有权限

  4.所以接下  ctrl+c  退出mongo shell

  5. killall mongod 杀死mongod进程

 6.权限运行mongo



/apps/mongodb/bin/mongod --dbpath=/apps/mongodb/data/db --auth --logpath=/apps/mongodb/logs/mongodb.logs --fork



mongodb控制用户权限 某个表 mongodb权限管理_mongodb_06

7. 在bin目录下运行 mongoshell ./mongo。 此时 show dbs、 show collections  都没有权限了

mongodb控制用户权限 某个表 mongodb权限管理_mongodb控制用户权限 某个表_07

再看Robomongo这边直接登录会显示

mongodb控制用户权限 某个表 mongodb权限管理_shell_08

  在mongoshell



use admin

db.auth('用户名','密码')   //相当于管理员登录 返回1 执行成功  便可进行任意操作



mongodb控制用户权限 某个表 mongodb权限管理_mongodb_09

  Robomongo下

mongodb控制用户权限 某个表 mongodb权限管理_数据库_10

选择 MONGODB-CR 登录成功

mongodb控制用户权限 某个表 mongodb权限管理_开发工具_11

 最后 vim /etc/rc.local 改为



/apps/mongodb/bin/mongod --dbpath=/apps/mongodb/data/db/ --auth --logpath=/apps/mongodb/logs/mongodb.log --logappend --port=27107  --fork



大功告成!!!!!!!