MongoDB3.2 安全(一)---authentication

2/13/2017来源:SQL技巧人气:971

MongoDB提供了很多安全特性,有:

Authentication

Authorization

TLS/SSL

EnterPRise Only

 

今天先来看一下authentication(认证)

目前植入如下几种认证机制:

SCRAM-SHA-1

MongoDBChallenge and Response (MONGODB-CR)

x.509Certificate Authentication

企业版增加两个认证机制:

LDAP proxy authentication, andKerberos authentication.

 

版本在3.0以后,默认的认证机制为SCRAM-SHA-1,之前旧版本则会使用MONGODB-CR作为默认认证机制

开启认证模式,可以提高你的数据库环境安全性

开启认证:

单实例如果想开启认证,则在启动mongod服务时,添加--auth参数即可

复制集的话,可以在启动mongod服务时,使用--keyfile参数,此时就不用再多余使用--auth参数了,因为--keyfile参数已经具有其认证功能

 

开启认证之前,记得要在数据库中先创建好用户与密码,否则你将无法登陆数据库,关于创建用户的方法可以参考我的《MongoDB3.2创建用户与权限》的文章。

 

连接访问:

连接数据库时,需要提供账号和密码,以及认证数据库,如下:

$ mongo 192.168.1.100:27017/testDB -u tuser -p123456 --authenticationDatabase admin

注:testDB是默认登录的数据库,也可以是有权限访问的其他数据库

     admin是账号tuser创建时所在的数据库,也就是认证数据库,不可改变,如果--authenticationDatabase缺省,则默认使       用testDB这个位置上的数据库作为认证库

密码可写可不写,如果要明文填写密码,则请紧随-P参数之后,不得有空格,如上所示

 

应用代码访问:

由于MongoDB更新太快,故在3.0以后对默认认证机制发生变更,若需要使用C#,java,PYTHON等代码连接时,请注意升级驱动版本,官网最低版本要求: