由于公司还有几台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