mongodb创建图书管理_MongoDB 3.6初步(创建管理员、常用命令、角色、权限)

创建管理员

Start MongoDB without access control.

先启动MongoDB服务:

D:\MongoDB\bin>net start MongoDB

mongod --port 27017 --dbpath .../data

Connect to the instance.然后连接实例:

D:\MongoDB\bin>mongo

Create the user administrator (in the admin authentication database).

> use admin

switched to db admin

> db.createUser(

{

user:"admin",

pwd:"password",

roles: [ { role:"userAdminAnyDatabase", db:"admin" } ]

}

)

Successfully added user: {

"user" : "admin",

"roles" : [

{

"role" : "userAdminAnyDatabase",

"db" : "admin"

}

]

}

Re-start the MongoDB instance with access control.

D:\MongoDB\bin>mongod --auth --port 27017 --dbpath ../data

Connect and authenticate as the user administrator. 然后验证权限是否生效

D:\MongoDB\bin>mongo --port 27017 -u "admin" -p "gaoziqingno1#" --authenticationDatabase "admin"

MongoDB shell version v3.6.3

connecting to: mongodb://127.0.0.1:27017/

MongoDB server version: 3.6.3

> show dbs

admin 0.000GB

config 0.000GB

local 0.000GB

> use admin

switched to db admin

> db.auth('admin','password')

1

Create additional users as needed for your deployment (in the test authentication database).

use test

db.createUser(

{

user: "myTester",

pwd: "xyz123",

roles: [ { role: "readWrite", db: "test" },

{ role: "read", db: "reporting" } ]

}

)

Connect and authenticate as myTester.

mongo --port 27017 -u "myTester" -p "xyz123" --authenticationDatabase "test"

常用命令

> show dbs #显示数据库列表

> show collections #显示当前数据库中的集合(类似关系数据库中的表)

> show users #显示用户

> use #切换当前数据库,如果数据库不存在则创建数据库。

> 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() #查看数据库服务器的状态

角色

内建的角色

数据库用户角色: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数据库中可用。超级账号,超级权限

权限

MongoDB是没有默认管理员账号,所以要先添加管理员账号,再开启权限认证。

切换到admin数据库,添加的账号才是管理员账号。

用户只能在用户所在数据库登录,包括管理员账号。

管理员可以管理所有数据库,但是不能直接管理其他数据库,要先在admin数据库认证后才可以。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值