MongoDB提供了很多安全特性,有:
Authentication
Authorization
TLS/SSL
Enterprise Only
今天先来看一下authentication(认证)
目前植入如下几种认证机制:
MongoDBChallenge and Response (MONGODB-CR)
x.509Certificate 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等代码连接时,请注意升级驱动版本,官网最低版本要求: