2010-05-04 19 views
10

leído en el sitio web couchdb -> Descripción técnica -> seguridad y validación - http://couchdb.apache.org/docs/overview.html - se escribe que (en el acceso parte lector) "Para proteger el contenido del documento, documentos CouchDB pueden tener una lista de lectores Esta es una. lista opcional de nombres de lectores permitidos para leer el documento. Cuando se usa una lista de lectores , los documentos protegidos solo son visibles para los usuarios incluidos en la lista ". I busqué cómo usarlo pero no encontré nada. Entonces, ¿se usa realmente y si es es así?CouchDB autorización

Gracias.

- Mustafa

Respuesta

13

Tienes razón, es confuso. Consulte el 0.11 "breaking" changes para obtener más información.

El control de lectura por documento no es posible; el campo readers es para el acceso a toda la base de datos. Para obtener más información, cargue su base de datos en Futon y haga clic en el enlace Security... en la parte superior.

El control de lectura de razón no es posible porque las vistas (asignar y reducir) pueden extraer información de todos los documentos en la base de datos, por lo que es imposible evitar que los usuarios vean datos privados de alguna forma.

Para el control de acceso detallado, tiene dos opciones principales:

  1. disponer de una aplicación entre sus usuarios y el PP. El 99% de las aplicaciones web que usan MySQL ya lo hacen (por ejemplo, Ruby on Rails). Mantenga la información de ACL en el DB y su aplicación otorga/rechaza el acceso según la ACL.
  2. Mantenga una base de datos dedicada por usuario. Puede que tenga que modificar su arquitectura, pero tal vez no. Puede usar la replicación con un filtro para copiar solo los datos de un usuario en su base de datos. Luego lee desde su base de datos y escribe en la base de datos central.
+0

planes de cambiar esto en el futuro cercano? –

+0

No espero un cambio en la arquitectura en el futuro previsible; Sin embargo, definitivamente espero herramientas para ayudar a suavizar el desarrollo. Por ejemplo, una forma automatizada de tener una base de datos por usuario con solo un subconjunto de los datos sería muy bienvenida por parte de la comunidad. – JasonSmith

+3

Hola, Tyler. Un año después y esto se está proponiendo entre los desarrolladores. Chris tiene una idea para listas de control de acceso completas. Además, estoy esbozando una idea para los usuarios que * no pueden * consultar documentos, pero que * pueden * consultar las funciones '_show'.Con suerte, habrá más opciones pronto. – JasonSmith

0
  1. Inicie sesión en el CouchDB como administrador.
  2. Abrir una base de datos en particular que desea asegurar
  3. Haga clic en el botón Seguridad de esa base de datos en particular.
  4. Agregar usuarios a Miembros nombres que pueden leer. (Al menos agregue el nombre de usuario de los administradores) como elemento de cadena de una matriz.
    Ej. nombres: [ "usuario1", "nombredeusuario2"]
  5. Haga clic en el botón de actualización

Click here to see the image

+0

preguntaba sobre el acceso al documento, no el acceso a la base de datos. – Kinesias