Ker*_*ğan 18
来自Mongo Java Tutorial
MongoDB可以在安全模式下运行,通过名称和密码身份验证来控制对数据库的访问.在此模式下运行时,任何客户端应用程序必须在执行任何操作之前提供名称和密码.在Java驱动程序中,您只需使用连接的mongo对象执行以下操作:
boolean auth = db.authenticate(myUserName, myPassword);
Run Code Online (Sandbox Code Playgroud)
如果名称和密码对数据库有效,则auth将为true.否则,它将是假的.您应该查看MongoDB日志以获取更多信息(如果有).
大多数用户在受信任的环境中运行MongoDB而无需身份验证.
配置验证和安全性
身份验证存储在每个数据库的system.users集合中.例如,在数据库projectx上,projectx.system.users将包含用户信息.
我们应该首先为整个数据库服务器进程配置管理员用户.此用户存储在特殊管理数据库下.
如果admin.system.users中没有配置用户,则可以从localhost接口访问数据库而不进行身份验证.因此,从运行数据库的服务器(以及因此在localhost上),运行数据库shell并配置管理用户:
$ ./mongo
> use admin
> db.addUser("theadmin", "anadminpassword")
Run Code Online (Sandbox Code Playgroud)
我们现在有一个为数据库管理员创建的用户.请注意,如果我们之前没有进行过身份验证,那么现在我们必须执行进一步的操作,因为admin.system.users中有一个用户.
> db.auth("theadmin", "anadminpassword")
Run Code Online (Sandbox Code Playgroud)
我们可以使用以下命令查看数据库的现有用户:
> db.system.users.find()
Run Code Online (Sandbox Code Playgroud)
现在,让我们为另一个数据库配置一个"常规"用户.
> use projectx
> db.addUser("joe", "passwordForJoe")
Run Code Online (Sandbox Code Playgroud)
最后,让我们添加一个只读用户.(仅在1.3.2+中支持)
> use projectx
> db.addUser("guest", "passwordForGuest", true)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16018 次 |
| 最近记录: |