mongodb 权限设置

mongodb安装成功后,成功启动后,用root帐号登录。(此次启动的配置中 auth=false 可以直接使用工具登录 ,同时 配置中 127.0.0.1,所以用局域网登录得借用ssh)

工具 : NoSQL Manager for MongoDB

mongodb 权限设置

mongodb 权限设置

登录成功后,可以看到 admin的库,右键点开shell,创建用户admin

db.createUser( { user: "admin", pwd: "admin", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })

user->用户名,pwd->密码,role->角色,db->指定所属的数据

role可以有以下选项:

1. 数据库用户角色:read、readWrite;

2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;

3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;

4. 备份恢复角色:backup、restore;

5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase

6. 超级用户角色:root

7. 内部角色:__system

具体的说明如下:

Read:允许用户读取指定数据库

readWrite:允许用户读写指定数据库

dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile

userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户

clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。

readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限

readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限

userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限

dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。

root:只在admin数据库中可用。超级账号,超级权限

我们创建一个 abc的用户,只对abc的数据库有读写权限。

1.创建abc,数据库

mongodb 权限设置

mongodb 权限设置

2.在shell中使用命令如下:

db.createUser( { user: "abc", pwd: "abc", roles: [ { role: "readWrite", db: "abc" } ] })

创建成功后,都会有返回状态,如下图

mongodb 权限设置

接下来,我们使用abc的用户来登录,同时修改mongodb的配置文件中的 auth=true,打开用户认证。

修改配置文件,需要重启mongodb,具体命令

# ps -ef|grep mong

# kill -9 1450(具体查看mongo的pid)

mongodb 权限设置

# bin/mongod -f conf/mongo.conf

利用工具,用abc来登录mongo

mongodb 权限设置

成功连接后,可以使用mongo的基本语句;

 db.user.insert({"name":1111,"pwd":2222})

刷新 Collections 后,就可以看到user这个collection(相当于mysql的表。)mongo,是可以在不创建user这个collection的时候,直接使用添加语句。


分享到:


相關文章: