MongoDB创建一个用户自定义角色
2015-10-26 17:18
701 查看
MongoDB创建一个用户自定义角色
前提条件
在数据库中创建一个角色,你必须有:
1.在该数据库资源上的createRole行为。
2.在该数据库上grantRole行为给新角色指定权限以及指定继承的角色。
内嵌角色userAdmin和userAdminAnyDatabase提供了它们各自资源的createRole和grantRole行为。
创建一个角色管理当前操作
下面的示例创建了角色manageOpRole,只提供了运行db.currentOp()和db.killOp()的权限。
1. 使用适当的权限连接到MongoDB。
使用在前提条件部分指定的权限,连接到mongod或mongos。
下面的过程创建了一个用户管理员siteUserAdmin:
2. 创建一个新的角色管理当前操作。
manageOpRole有权限在多个数据库以及cluster资源操作。因此,你必须在admin数据库创建角色。
警告:
终止运行中的操作要极其小心。只使用db.killOp()来终止客户端发起的操作而不会终止内部数据库操作
。
内嵌的角色ClusterMonitor也提供了权限运行db.currentOp()及其他权限,内嵌的角色hostManager提供了权限运行db.killOp()以及其他权限。
创建一个角色运行mongostat
下面的示例创建一个角色mongostatRole提供了只有运行mongostat的权限。
1. 使用适当的权限连接到MongoDB。
使用在前提条件部分指定的权限,连接到mongod或mongos。
下面的过程创建了一个用户管理员siteUserAdmin:
2.创建一个新的角色来管理当前操作。
mongostatRole有权限在cluster资源操作。因此,你必须在admin数据库创建角色。
参见:https://docs.mongodb.org/manual/tutorial/manage-users-and-roles/#create-role-to-manage-ops
前提条件
在数据库中创建一个角色,你必须有:
1.在该数据库资源上的createRole行为。
2.在该数据库上grantRole行为给新角色指定权限以及指定继承的角色。
内嵌角色userAdmin和userAdminAnyDatabase提供了它们各自资源的createRole和grantRole行为。
创建一个角色管理当前操作
下面的示例创建了角色manageOpRole,只提供了运行db.currentOp()和db.killOp()的权限。
1. 使用适当的权限连接到MongoDB。
使用在前提条件部分指定的权限,连接到mongod或mongos。
下面的过程创建了一个用户管理员siteUserAdmin:
use admin db.createUser( { user: "siteUserAdmin", pwd: "password", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )登录到MongoDB:
mongo --port 27017 -u siteUserAdmin -p password --authenticationDatabase adminsiteUserAdmin拥有在admin以及其他数据库创建角色的权限。
2. 创建一个新的角色管理当前操作。
manageOpRole有权限在多个数据库以及cluster资源操作。因此,你必须在admin数据库创建角色。
use admin db.createRole( { role: "manageOpRole", privileges: [ { resource: { cluster: true }, actions: [ "killop", "inprog" ] }, { resource: { db: "", collection: "" }, actions: [ "killCursors" ] } ], roles: [] } )新角色被授权能杀掉任何操作。
警告:
终止运行中的操作要极其小心。只使用db.killOp()来终止客户端发起的操作而不会终止内部数据库操作
。
内嵌的角色ClusterMonitor也提供了权限运行db.currentOp()及其他权限,内嵌的角色hostManager提供了权限运行db.killOp()以及其他权限。
创建一个角色运行mongostat
下面的示例创建一个角色mongostatRole提供了只有运行mongostat的权限。
1. 使用适当的权限连接到MongoDB。
使用在前提条件部分指定的权限,连接到mongod或mongos。
下面的过程创建了一个用户管理员siteUserAdmin:
use admin db.createUser( { user: "siteUserAdmin", pwd: "password", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )登录到MongoDB:
mongo --port 27017 -u siteUserAdmin -p password --authenticationDatabase adminsiteUserAdmin拥有在admin以及其他数据库创建角色的权限。
2.创建一个新的角色来管理当前操作。
mongostatRole有权限在cluster资源操作。因此,你必须在admin数据库创建角色。
use admin db.createRole( { role: "mongostatRole", privileges: [ { resource: { cluster: true }, actions: [ "serverStatus" ] } ], roles: [] } )内嵌的角色clusterMonitor也提供了权限运行mongostat以及其他权限。
参见:https://docs.mongodb.org/manual/tutorial/manage-users-and-roles/#create-role-to-manage-ops
相关文章推荐
- MongoDB游标操作(4)
- MongoDB查看当前操作db.currentOp()
- 搭建高可用mongodb集群(五)--集群搭建的三种方式
- 搭建高可用mongodb集群(四)—— 分片
- 搭建高可用mongodb集群(三)—— 深入副本集内部机制
- MongoDB 与传统关系型数据库mysql比较
- Mongodb数据库操作
- MongoDB数组修改器更新数据
- mongodb与sql聚合对应图 M
- node+mongodb建站
- 搭建高可用mongodb集群(二)—— 副本集
- 搭建高可用mongodb集群(一)——配置mongodb
- mongodb db.collection.remove用法
- ubuntu mongodb报错:mongo - couldn't connect to server 127.0.0.1:27017
- ubuntu mongodb报错:mongo - couldn't connect to server 127.0.0.1:27017
- MongoDB入门篇
- 解决mongodb设备mongod命令不是内部或外部的命令
- MongoDB服务端JavaScript脚本使用方法
- MongoDB基本操作增删改查(3)
- MongoDB 的使用限制和瓶颈