authorization设置的是enable吧,但是这样还是能不带用户名密码登入
时间: 2024-09-13 21:05:26 浏览: 30
确实,如果你仅仅设置了`authorization: enable`,系统会启用认证功能,但默认情况下,MongoDB仍然允许匿名用户读取某些公共数据集(例如匿名用户可以查看`public`或`admin`数据库)。如果你想完全禁止无认证登录,你需要进一步配置:
1. **禁用匿名用户**:在`mongod.conf`文件的`security.authorization`部分,将`anonymous`标志设为`false`:
```json
security:
authorization: enabled
allowAnonymous: false
```
2. **明确指定用户和角色**:如果希望所有请求都必须通过认证,需要创建至少一个用户并授予必要的权限:
```json
users:
- name: "your-username"
password: "your-password"
roles: [ { role: "readWriteAnyDatabase", database: "your-database-name" } ]
```
这样,除非你知道用户的凭据并且他们有相应的权限,否则就不能直接无认证登录。
阅读全文