Descripción general de las vistas autorizadas

Las vistas autorizadas son vistas lógicas de las tablas que te brindan un control de acceso detallado a tus datos de Bigtable. Una vista autorizada es un subconjunto de una tabla que configuras para incluir datos de tabla específicos. Luego, debes otorgar acceso a la vista autorizada por separado del acceso a la tabla.

Las vistas autorizadas son útiles para tablas multiusuario y otras situaciones en las que la tabla contiene datos a los que no todos los usuarios deberían poder acceder. A diferencia de las vistas en otros servicios de base de datos, las vistas autorizadas de Bigtable se pueden usar para controlar el acceso de lectura y escritura. Puedes crear miles de vistas autorizadas de manera programática, de la misma manera que lo haces con lo que otros sistemas de almacenamiento llaman “vistas actualizables” o “alias filtrados”.

En este documento, se describen las vistas autorizadas y se proporcionan ejemplos de archivos de definición. Antes de leer este documento, debes estar familiarizado con el modelo de almacenamiento de Bigtable. Para obtener instrucciones, consulta Crea y administra vistas autorizadas.

Qué define una vista autorizada

Cuando creas una vista autorizada, debes definirla especificando los datos que se incluirán en la vista autorizada mediante uno de los siguientes parámetros:

  • Prefijo de la clave de fila: por ejemplo, todas las filas que comienzan con examplepetstore1|
  • Prefijo del calificador de columna: por ejemplo, todas las columnas cuyos calificadores comienzan con order# en la familia de columnas especificada
  • Calificador de columnas: por ejemplo, solo la columna order-examplepetstore en la familia de columnas especificada
  • Una combinación de prefijo de clave de fila y calificador de columna

Si se usa el mismo calificador de columna en varias familias de columnas y deseas incluir todas las columnas con ese calificador en la vista, debes especificar cada combinación de calificador de columna y familia de columnas por separado cuando definas la vista.

Los valores de la clave de fila y del calificador de columna que usas para definir una vista autorizada se tratan como datos de servicio. Por este motivo, no crees una vista autorizada con valores de clave de fila o calificador de columna que contengan información sensible. Para obtener información sobre cómo se manejan los datos del servicio, consulta el Aviso de Privacidad de Google Cloud.

Incluir columnas en una familia o todas las filas

Si deseas asegurarte de que cualquier columna que se agregue a una familia de columnas en la tabla subyacente también se incluya en tu vista autorizada, debes especificar la cadena vacía ("") como prefijo del calificador de columna. Por ejemplo, un archivo de definición incluiría esto en el subconjunto de familia: "qualifierPrefixes": [""].

De manera similar, si deseas definir una vista autorizada que incluya todas las filas de la tabla, especifica la string vacía ("") como un prefijo de clave de fila. En un archivo de definición, esto se escribe como "rowPrefixes": [""] en el subconjunto de vistas.

Ejemplos de archivos de definición

En esta sección, se presentan ejemplos con formato JSON de archivos de definición de vistas autorizados.

A continuación, se muestra un ejemplo de un archivo de definición para una vista autorizada que incluye todas las filas con un prefijo de clave de fila de examplepetstore1#.

    {
      "subsetView":
      {
        "rowPrefixes": ["examplestore1#"],
        "familySubsets":
        {
          "customer":
          {
            "qualifiers":["address"],
            "qualifierPrefixes":["tel"]
          }
        }
      },
      "deletionProtection": true
    }

A continuación, se muestra un ejemplo de un archivo de definición para una vista autorizada que incluye la columna skus en la familia de columnas order y todas las columnas en la familia de columnas customer.

"subsetView": {
 "familySubsets": {
  "order": {
     "qualifiers": ["skus"]
  }
}
  "familySubsets": {
    "key": "customer"
    "qualifierPrefixes": [""]
  }
}

El siguiente es un ejemplo de un archivo de definición para una vista autorizada que incluye solo los datos de la columna skus en la familia de columnas order en las filas que tienen un prefijo de clave de fila de examplepetstore1#.

"subsetView": {
  "rowPrefixes": ["examplepetstore1#"]
  "familySubsets": {
    "order": {
      "qualifiers": ["skus"]
    }
  }
}

¿Qué sigue?