MongoDB服务配置系列问题
2017-07-04 20:05
477 查看
MongoDB服务配置系列问题
通过配置文件配置服务:
dbpath=F:\Program\DATA\Mongo\db #数据存储路径 logpath=F:\Program\DATA\Mongo\logs\mongo.log #日志存储路劲 logappend=true #日志写入方式:追加 port=27017 #端口 #auth=true #是否认证 bind_ip=0.0.0.0 serviceName = MongoDB #服务名称 serviceDisplayName = MongoDB
1、安装配置文件:
在mongdb的bin目录下在 cmd 中以管理员身份执行以下命令:mongod --install -f F:\Program\DATA\Mongo\mongodb.conf
执行此命令后在 ‘此电脑–管理–服务和应用程序–服务’中可以看到服务名称MongoDB。
2、关闭、启动、删除服务:
net stop MongoDB#停止一个服务 net start MongoDB #开启一个服务 sc delete MongoDB #删除一个服务 sc delete "服务名" (如果服务名中间有空格,就需要前后加引号)
开启或关闭用户名和密码登陆:
auth = true或者
auth = false说的是连接数据库是否需要密码验证,对应用户名和密码。
下面说一说如何开启密码验证:
admin数据库是管理员数据库,记录用户信息,我们需要先在这个数据库中创建一个管理员用户。然后通过这个管理员用户在其他数据库下添加、修改或者删除那个数据库的用户。
use admin db.createUser( ... ... { ... ... user: "****", ... ... pwd: "****", ... ... roles: [ { role: "root", db: "admin" } ] #'root'拥有最高权限。 ... ... } ... ... )
关闭服务:
net stop MongoDB
修改配置文件:
dbpath=F:\Program\DATA\Mongo\db #数据存储路径 logpath=F:\Program\DATA\Mongo\logs\mongo.log #日志存储路劲 logappend=true #日志写入方式:追加 port=27017 #端口 auth=true #把false 改成 true bind_ip=0.0.0.0 serviceName = MongoDB #服务名称 serviceDisplayName = MongoDB
重新安装配置文件:
mongod --install -f F:\Program\DATA\Mongo\mongodb.conf
这个时候,进入到数据库进行操作的时候,发现没有相应权限,下一步登陆。
use admin db.auth('username','password') use test1 #切换到数据库test1 #为test1创建一个用户 db.createUser( ... { ... user: "testuser", ... pwd: "testpassword", ... roles: [ { role: "read", db: "test1" }] ... }
在 pymongo 中连接 mongodb:
import pymongo client = pymongo.MongoClient('localhost', connect=True) client['test1'].authenticate('testuser','testpassword',mechanism="DEFAULT")。#这一步的作用是登陆。登陆成功返回TRUE。 db = client['test1'] #登陆成功后,再连接数据库。 db.test.find_one() #查询 db.test.insert_one({'b':2}) #插入。#role决定了用户的权限。如果是只读用户,则不能进行这一步操作。 for i in db.test.find(): print(i) client['test'].logout() #退出数据库。
mongodb开启了认证认证后,我发现不能通过pymongo创建新的数据库。
#举例: client = pymongo.MongoClient('localhost', connect=False) db = client['jianshu'] db.table1.insert({'a':1}) #这一步报错,提示没有认证登陆。可这是一个新的数据库,根本都还没写入mongodb,怎么认证。
这个时候有两个办法:
一是在mongo终端中先建立一个数据库,设置好用户后,在pymongo中通过用户名和密码连接。
二是关闭认证。
如何关闭认证:
#关闭MongoDB服务 net stop MongoDB #修改配置文件 auth = false #安装配置文件 mongod --install -f F:\Program\DATA\Mongo\mongodb.conf #开启服务: net start MongoDB
用户授权相关操作
在哪个库下创建用户,这个用户就属于哪个库,且只对这个库有访问权限。Mongodb 的授权采用了角色授权的方法,每个角色包括一组权限。
数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin;
超级用户角色:root // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
1、创建用户
db.createUser( ... { ... user: "test1", ... pwd: "test1", ... roles: [ { role: "dbOwner", db: "test1" }] ... }
2、修改密码
db.changeUserPassword('testuser','1234') #把数据库test的密码改为1234
3、添加用户权限
db.grantRolesToUser( "testuser", [ { role: "read",db:"admin"} ] )
4、收回用户权限
db.revokeRolesFromUser("testuser",[ { role: "read",db:"admin"} ] )
5、删除用户
db.dropUser("testuser")
相关文章推荐
- 安装配置MongoDB(服务名无效问题)--学习1
- MongoDB副本集配置系列九:MongoDB 常见问题
- mongodb系列教程(一)-安装及配置服务
- 解决在Fedora 12 中配置后Samba服务后,Windows依然无法访问Linux共享目录的问题。
- WCF系列(一) -- 完全不使用配置文件构建和使用WCF服务
- Installshield 12 中文系列教程之 配置服务(二)COM+
- Installshield 12 中文系列教程之 配置服务 (三)配置IIS
- nginx配置httpd服务遇到问题
- 解决 Silverlight 调用 WCF 服务 跨域访问 和 Silverlight 引用服务后配置文件不加载的问题
- 因计算机磁盘硬件配置问题windows无法启动及HP系列机器不能使用GHOST的解决方法
- 网店版重生系列:Linux下Jboss启动、关闭、端口配置等常见问题FAQ
- BW报表igs服务配置解决中文显示问题
- jboss配置JMS服务遇到的小问题
- ASP.NET Forms验证的安全性问题研究——为什么加密代码需要配置为服务
- 使用Spring 实现 定时服务 的相关配置问题。
- WCF系列(二) -- 使用配置文件构建和使用WCF服务
- WCF系列(二) -- 使用配置文件构建和使用WCF服务 【转】
- WCF系列(一) -- 完全不使用配置文件构建和使用WCF服务【转】
- Windows 网络服务架构系列课程详解(二) ----DNS服务器的部署与配置 推荐
- WCF系列(二) -- 使用配置文件构建和使用WCF服务