21.26 mongodb介绍
21.27 mongodb安装mongodb
vim mongodb-org-3.4.repo 内容以下:
yum install -y mongodb-orgshell
21.28 链接mongodb
systemctl start mongod //启动服务
在本机能够直接运行命令mongo进入到mongodb shell中
若是mongodb监听端口并非默认的27017,则在链接的时候须要加--port 选项,例如
mongo --port 27018
链接远程mongodb,须要加--host,例如
mongo --host 127.0.0.1
若是设置了验证,则在链接的时候须要带用户名和密码
mongo -uusername -ppasswd --authenticationDatabase db //这个和MySQL挺像数据库
21.29 mongodb用户管理vim
use admin//须要切换到admin库
db.createUser( { user: "admin", customData: {description: "superuser"}, pwd: "admin122", roles: [ { role: "root", db: "admin" } ] } )
user指定用户,customData为说明字段,能够省略,pwd为密码,roles指定用户的角色,db指定库名
use admin //切换到admin库
db.system.users.find() //列出全部用户,须要切换到admin库
show users //查看当前库下全部的用户
db.dropUser('admin') //删除用户
若要用户生效,还须要编辑启动脚本vim /usr/lib/systemd/system/mongod.service,在OPTIONS=后面增--auth
重启服务systemctl restart mongod
mongo -u "admin" -p "admin122" --authenticationDatabase "admin"服务器
use db1
db.createUser( { user: "test1", pwd: "123aaa", roles: [ { role: "readWrite", db: "db1" }, {role: "read", db: "db2" } ] } )
test1用户对db1库读写,对db2库只读。
之因此先use db1,表示用户在 db1 库中建立,就必定要db1库验证身份,即用户的信息跟随随数据库。好比上述 test1虽然有 db2 库的读取权限,可是必定要先在db1库进行身份验证,直接访问会提示验证失败。
use db2
db.auth("test1", "123aaa")ide
用户角色:
Read:容许用户读取指定数据库
readWrite:容许用户读写指定数据库
dbAdmin:容许用户在指定数据库中执行管理函数,如索引建立、删除,查看统计或访问system.profile
userAdmin:容许用户向system.users集合写入,能够找指定数据库里建立、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户全部分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户全部数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户全部数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户全部数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户全部数据库的dbAdmin权限。
root:只在admin数据库中可用。超级帐号,超级权限函数
db.version() //查看版本
use userdb //若是库存在就切换,不存在就建立
show dbs //查看库,此时userdb并无出现,这是由于该库是空的,尚未任何集合,只须要建立一个集合就能看到了
db.createCollection('clo1') //建立集合clo1,在当前库下面建立
db.dropDatabase() //删除当前库,要想删除某个库,必须切换到那个库下
db.stats() //查看当前库的信息
db.serverStatus() //查看mongodb服务器的状态url