对于 Mongodb 常用的身份验证方式,主要有以下两种:
①启用身份验证功能
在启动 MongoDB 时,需使用 --auth 参数启用身份验证功能.
> use admin
> db.createUser(
... {
... user: "admin",
... pwd: "123456",
... roles: [ { role: "root", db: "admin" } ]
... }
... )
> use test
> db.createUser(
... {
... user: "user1",
... pwd: "123456",
... roles: [ { role: "readWriteAnyDatabase", db: "admin" } ]
... }
... )
①生成或获取证书
首先需要获取或生成证书,可以使用自签名证书或颁发机构(CA)证书.
在启动 MongoDB 时,使用 --auth --sslMode requireSSL --sslPEMKeyFile --sslCAFile 参数启用身份验证并启用 SSL/TLS 加密.
> use admin
> db.runCommand({
... createUser: "CN=myClient,OU=client",
... roles: [
... {role: "readWrite", db: "myDatabase"}
... ],
... userSource: "$external"
... })
此示例中,CN=myClient,OU=client 为证书的公用名称(Common Name,CN)和组织单位(Organizational Unit,OU).需要根据实际证书信息进行替换.
net:
# ...
ssl:
CAFile: /etc/ssl/rootCA.pem
使用 openssl 命令生成自签名证书
$ openssl req -newkey rsa:2048 -nodes -keyout mongodb.key -x509 -days 365 -out mongodb.crt
将证书拼接成 pem 格式
$ cat mongodb.crt mongodb.key > mongodb.pem
启动 MongoDB 并启用身份验证与 SSL/TLS 加密
$ mongod --auth --sslMode requireSSL --sslPEMKeyFile /path/to/mongodb.pem --sslCAFile /path/to/rootCA.pem
创建用户并授予角色
> use admin
> db.runCommand({
... createUser: "CN=myClient,OU=client",
... roles: [
... {role: "readWrite", db: "test"}
... ],
... userSource: "$external"
...})
使用证书连接 MongoDB 实例
$ mongo --ssl --sslPEMKeyFile /path/to/mongodb.pem --host localhost --username 'CN=myClient,OU=client' --authenticationMechanism MONGODB-X509
以上就是土嘎嘎小编为大家整理的Mongodb常用的身份验证方式相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!