哪个mongodb-connection(管理员或用户)用来与数据库交互

时间:2014-06-22 18:49:49

标签: c# .net mongodb mongodb-.net-driver

我正在开发一个c#-webservice,它将为客户端提供一些与mongodb交互的方法。

我的问题是:我应该使用

- > admin-user从数据库读取/写入数据库并自行处理授权  要么 - >我应该与当前登录用户建立连接,让mongodb负责用户授权吗?

我问,因为在我可以执行用户权限足够的方法之前,我需要查询用户数据库(只有管理员有权读/写)的一些用户操作。

托拜厄斯

1 个答案:

答案 0 :(得分:1)

简短的回答是:在您的应用程序中自己处理身份验证。

中等答案是:这主要取决于您的意见,无论您使用何种数据库解决方案,都需要回答这个问题。

答案很长: MongoDB支持4种不同的authentication mechanisms

  1. MONGODB-CR - 内部质询 - 响应MongoDB机制。
  2. x.509证书(v2.6中的新内容)。
  3. Kerberos(仅限MongoDB Enterprise)。
  4. LDAP代理权限(仅限MongoDB Enterprise for Linux)。
  5. 我假设你运行windows,它使用Kerberos进行身份验证。我还假设您没有MongoDB Enterprise订阅,因为它的费用是基本订阅的3倍。如果这些假设是正确的,您无法真正使用登录用户的Windows身份验证来访问数据库。这意味着您必须自己处理身份验证。

    我建议使用证书。如果您的环境支持它,它非常容易,它不是MongoDB特有的,而且非常安全。