我应该使用什么角色以编程方式在 Cloudant/BigCouch/CouchDB 中创建和删除数据库?
What role should I use to programmatically create and delete databases in Cloudant/BigCouch/CouchDB?
Cloudant、CouchDB 和 BigCouch 都建议创建用户特定的数据库作为实现文档级访问控制的一种方式。即 AliceDB 将只有 Alice 可以阅读的文档,BobDB 将只有 Bob 的文档等等。
实施此模式需要以编程方式创建和删除数据库。有用于这些的 DB REST API,但这些 API 要求调用者具有服务器管理员权限。我在同一个集群上有许多其他不相关的数据库,我担心分发具有 serveradmin 权限的用户标识。 (如果客户端代码不小心删除了我的其他数据库怎么办?!!)
人们正在做什么来解决这个问题?我在 Cloudant、CouchDB 或 BigCouch 文档中找不到任何内容。
您有几个可能的选择:
- Apache CouchDB 2.0 包含一个可能有用的
couch_peruser
配置选项。
- 您可以创建自己的系统来执行与
couch_peruser
相同的操作。这将涉及创建一个程序,该程序有权创建新数据库并相应地分配权限。
- Cloudant Envoy 可以提供每个用户拥有一个单独数据库的错觉,而无需实际创建单独的数据库。
Cloudant、CouchDB 和 BigCouch 都建议创建用户特定的数据库作为实现文档级访问控制的一种方式。即 AliceDB 将只有 Alice 可以阅读的文档,BobDB 将只有 Bob 的文档等等。
实施此模式需要以编程方式创建和删除数据库。有用于这些的 DB REST API,但这些 API 要求调用者具有服务器管理员权限。我在同一个集群上有许多其他不相关的数据库,我担心分发具有 serveradmin 权限的用户标识。 (如果客户端代码不小心删除了我的其他数据库怎么办?!!)
人们正在做什么来解决这个问题?我在 Cloudant、CouchDB 或 BigCouch 文档中找不到任何内容。
您有几个可能的选择:
- Apache CouchDB 2.0 包含一个可能有用的
couch_peruser
配置选项。 - 您可以创建自己的系统来执行与
couch_peruser
相同的操作。这将涉及创建一个程序,该程序有权创建新数据库并相应地分配权限。 - Cloudant Envoy 可以提供每个用户拥有一个单独数据库的错觉,而无需实际创建单独的数据库。