mongodb安装成功后,成功启动后,用root帐号登录。(此次启动的配置中 auth=false 可以直接使用工具登录 ,同时 配置中 127.0.0.1,所以用局域网登录得借用ssh)
工具 : NoSQL Manager for MongoDB
![mongodb 权限设置](http://p2.ttnews.xyz/loading.gif)
![mongodb 权限设置](http://p2.ttnews.xyz/loading.gif)
登录成功后,可以看到 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,数据库
2.在shell中使用命令如下:
db.createUser( { user: "abc", pwd: "abc", roles: [ { role: "readWrite", db: "abc" } ] })
创建成功后,都会有返回状态,如下图
接下来,我们使用abc的用户来登录,同时修改mongodb的配置文件中的 auth=true,打开用户认证。
修改配置文件,需要重启mongodb,具体命令
# ps -ef|grep mong
# kill -9 1450(具体查看mongo的pid)
# bin/mongod -f conf/mongo.conf
利用工具,用abc来登录mongo
成功连接后,可以使用mongo的基本语句;
db.user.insert({"name":1111,"pwd":2222})
刷新 Collections 后,就可以看到user这个collection(相当于mysql的表。)mongo,是可以在不创建user这个collection的时候,直接使用添加语句。
閱讀更多 程序從入門到放棄 的文章