facebook将推出智能手机buffy 2013年惊世亮相
2011-11-23 09:26
477 查看
转自 http://www.tuicool.com/articles/nE7vaqj 亲测有用
之前用MongoDB没有设置用户和权限,一直都是本机应用程序连接MongoDB。在服务器上部署后对外没有开数据库连接端口,本机应用程序连接再开放应用程序端口供外部访问。想想很不对劲还是设置下用户授权吧。我部署的环境是windows下MongoDB2.4.8版本。首先要开启安全模式的话,在启动MongoDB服务的时候就要加上--auth参数,命令如下:
![](http://img0.tuicool.com/Bn2mAjY.jpg)
之前启动不带auth参数的服务时,不添加用户名密码连接是可以连接的,因为设置了auth参数所以这里必须添加用户名和密码;把上面设置的admin用户sa填入就可以连接上了。 连接上之后打开一个库,里面有个Users设置
![](http://img2.tuicool.com/6VbINj.jpg)
这里可以对某一个库进行用户的添加删除修改等操作,这是最高权限的admin视图,如果用test库的test用户登录的话,视图就只能看见test库了
![](http://img0.tuicool.com/JFbARzM.jpg)
以上就是windows下使用MongoDB在shell和可视化工具中对用户权限设置的简单操作方法。
之前用MongoDB没有设置用户和权限,一直都是本机应用程序连接MongoDB。在服务器上部署后对外没有开数据库连接端口,本机应用程序连接再开放应用程序端口供外部访问。想想很不对劲还是设置下用户授权吧。我部署的环境是windows下MongoDB2.4.8版本。首先要开启安全模式的话,在启动MongoDB服务的时候就要加上--auth参数,命令如下:
D:\mongodb>mongod.exe --dbpath D:\mongodb\data --logpath=D:\mongodb\logs\mongodb.log --auth这样的话再连接MongoDB操作的时候就需要一定的权限。一、首先我们需要在没有加"--auth"权限参数启动服务进行用户权限管理我们这样启动MongoDB服务:
D:\mongodb>mongod.exe --dbpath D:\mongodb\data --logpath=D:\mongodb\logs\mongodb.log这时不指定用户连接mongodb,是可以登录并操作的,我的操作如下:
D:\>mongo MongoDB shell version: 2.4.8connecting to: test> show dbs admin (empty)local 0.078125GB>可以看到默认显示两个库,我们需要进入admin库进行权限设置(这个时候因为服务没有添加权限参数,所以默认是有权限进行相关设置的)> use adminswitched to db admin> db.addUser('sa','sa'){"user" : "sa","readOnly" : false,"pwd" : "75692b1d11c072c6c79332e248c4f699","_id" : ObjectId("53af835ada88ac42a40917a0")}> db.system.users.find(){ "_id" : ObjectId("53af835ada88ac42a40917a0"), "user" : "sa", "readOnly" : false, "pwd" : "75692b1d11c072c6c79332e248c4f699" }二、我们关掉之前开启的服务,添加"--auth"权限参数,重新启动MongoDB服务
D:\>mongod --dbpath D:\mongodb\data --logpath=D:\mongodb\logs\mongodb.log --auth我们再次连接并操作:D:\>mongoMongoDB shell version: 2.4.8connecting to: test> use adminswitched to db admin> show collectionsSun Jun 29 11:17:27.103 error: {"$err" : "not authorized for query on admin.system.namespaces","code" : 16550} at src/mongo/shell/query.js:128发现如果不加身份信息默认连接的话,是没有权限操作的。我们验证下之前添加的用户,再操作试下:
> db.auth('sa','sa')1 //返回1表示验证成功,返回0表示验证失败 > show collections system.indexes system.users发现验证成功可以对admin库进行操作了,我们再连接其他库试试:
D:\>mongo MongoDB shell version: 2.4.8connecting to: test> show collections Sun Jun 29 11:20:17.996 error: { "$err" : "not authorized for query on test.system.namespaces", "code" : 16550} at src/mongo/shell/query.js:128> db.auth('sa','sa') Error: 18 { code: 18, ok: 0.0, errmsg: "auth fails" }0发现这里验证失败了,之前设置的admin用户验证不管用。查了资料知道必须先从admin登录再use其他库才能被验证通过:
D:\>mongo MongoDB shell version: 2.4.8connecting to: test> use admin switched to db admin> db.auth('sa','sa')1> use test switched to db test> show collections三、添加完顶层admin用户,可以用admin账户进行其他用户的设置如果想让单独的库有单独的用户名就得先从admin登录然后设置相应的用户信息,具体操作如下:
D:\>mongo MongoDB shell version: 2.4.8connecting to: test> use admin switched to db admin> db.auth('sa','sa')1 //先从admin登录> use test switched to db test> show collections> db.addUser('test','test') //添加test库的用户{ "user" : "test", "readOnly" : false, "pwd" : "a6de521abefc2fed4f5876855a3484f5", "_id" : ObjectId("53af874c5017b6747e68da2a") }再次单独登录test试试:
D:\>mongo MongoDB shell version: 2.4.8connecting to: test> show collections //未登录没有权限Sun Jun 29 11:27:52.899 error: { "$err" : "not authorized for query on test.system.namespaces", "code" : 16550} at src/mongo/shell/query.js:128> db.auth('test','test') //之前设置的账户1 //登录成功> show collections system.indexes system.users四、设置完admin账户后开启带权限参数的MongoDB服务在可视化管理器中管理用户权限在windows下我使用了MongoVUE可视化管理工具。建立新连接:
![](http://img0.tuicool.com/Bn2mAjY.jpg)
之前启动不带auth参数的服务时,不添加用户名密码连接是可以连接的,因为设置了auth参数所以这里必须添加用户名和密码;把上面设置的admin用户sa填入就可以连接上了。 连接上之后打开一个库,里面有个Users设置
![](http://img2.tuicool.com/6VbINj.jpg)
这里可以对某一个库进行用户的添加删除修改等操作,这是最高权限的admin视图,如果用test库的test用户登录的话,视图就只能看见test库了
![](http://img0.tuicool.com/JFbARzM.jpg)
以上就是windows下使用MongoDB在shell和可视化工具中对用户权限设置的简单操作方法。
相关文章推荐
- 微软否认将推出智能手机 寄希望于合作伙伴
- Arm推出全新Mali多媒体套件,想让机器学习进入中低端智能手机
- 亚马逊6月18日发布惊世之作 或为3D智能手机
- 高通推出首款智能手机双核芯片
- 华为正争取SIRIN OS许可推出区块链智能手机
- 推出一款高端手机USB智能识别快速充电控制芯片方案
- 亚马逊推出3D Fire智能手机
- Amazon或将于明年推出KindlePhone智能手机
- 三星推出“iPhone杀手”Omnia智能手机
- VisionMobile:2013年Q3移动开发者经济报告(八):第七章、开发者对平板的兴趣直追智能手机
- Facebook推出附近好友功能 可用手机查附近好友
- HTC与新浪推出新浪微博智能手机HTC微客
- 外媒:华为正与各方谈判 计划推出区块链智能手机
- IBM首次推出移动安全服务,主要针对在企业中使用的智能手机和平板电脑
- 谷歌针对智能手机推出的新型Googlebot
- 诺基亚今年或推出配置1GHz CPU的智能手机 [cnbeta,ugmbbc,2012.3.21](朱佳峰)
- HTC推出革新的HTC旗舰级Android智能手机
- Facebook智能手机收发私信必须用Messenger