Descripción general de las vistas autorizadas
Las vistas autorizadas son vistas lógicas de tablas que te proporcionan un control de acceso detallado de tus datos de Bigtable. Una vista autorizada es un subconjunto de una tabla que configuras para incluir datos de tabla específicos. Luego, otorgas acceso a la vista autorizada de forma independiente del acceso a la tabla.
Las vistas autorizadas son útiles para tablas multiusuario o para otras situaciones en las que la tabla contiene datos que no todos los usuarios deberían poder el acceso a los datos. A diferencia de las vistas en otros servicios de bases de datos, Bigtable las vistas autorizadas se pueden usar para controlar el acceso de lectura y escritura. Tú pueden crear miles de vistas autorizadas de manera programática, de la misma manera con lo que otros sistemas de almacenamiento llaman "vistas actualizables" o "filtrados" aliases."
En este documento, se describen las vistas autorizadas y se proporcionan ejemplos de archivos de definición. Antes de leer este documento, debes familiarizarte 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 para incluir en la vista autorizada usando 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
comienza con
order#
en la familia de columnas especificada - Calificador de columna (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 combinado de calificador de columna y familia de columnas por separado cuando defines el vista.
Los valores de la clave de fila y el calificador de columna que usas para definir una vista autorizada se consideran datos de servicio. Por este motivo, no creas una vista autorizada con valores de clave de fila o calificador de columna que contienen información sensible. Para obtener información sobre cómo se manejan los datos de servicio, consulta el Aviso de Privacidad de Google Cloud.
Cómo incluir columnas en una familia o en todas las filas
Si quieres asegurarte de que cualquier columna que se agregue a una familia de columnas de la
subyacente también se incluye en tu vista autorizada, entonces
debe especificar la cadena vacía (""
) como prefijo del calificador de columna. Para
Por ejemplo, un archivo de definición incluiría esto en el subconjunto de familia:
"qualifierPrefixes": [""]
Del mismo modo, si quieres definir una vista autorizada que incluya todas
filas de la tabla, especifica la cadena 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.
Para evitar vistas autorizadas demasiado complejas, Bigtable te permite especificar como máximo 10 prefijos de calificador distintos. Esto significa que una vista autorizada puede especificar una familia de columnas con 10 prefijos de calificador, 10 familias de columnas con un solo prefijo de calificador o cualquier valor intermedio, siempre que la cantidad total de calificadores sea de 10 como máximo.
Como práctica recomendada, especifica una clave solo una vez por objeto JSON. Si especificas un como un nombre de familia de columnas, más de una vez; la entrada final de la clave reemplaza cualquier entrada anterior de la clave.
Ejemplos de archivos de definición
En esta sección, se presentan ejemplos en formato JSON de vistas autorizadas archivos de definición.
El siguiente es 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
}
El siguiente es un ejemplo de un archivo de definición para una vista autorizada
que incluya la columna skus
en la familia de columnas order
y todas las columnas de
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 solo incluya los datos de la columna skus
de order
en filas que tienen un prefijo de clave de fila de examplepetstore1#
.
{
"subsetView": {
"rowPrefixes": ["examplepetstore1#"]
"familySubsets": {
"order": {
"qualifiers": ["skus"]
}
}
}
}
El siguiente es un ejemplo de un archivo de definición para una vista autorizada
que incluya solo los datos de las columnas skus
y agents
en order
y las familia de columnas dog
, cat
y bird
en pet_id
familia de columnas.
{
"subsetView": {
"rowPrefixes": ["examplepetstore1#"]
"familySubsets": {
"order": {
"qualifiers": ["skus", "agents"]
"pet_id": {
"qualifiers": ["dog", "cat", "bird"]
}
}
}
}
}
¿Qué sigue?
- Borrar datos a través de una vista autorizada
- Obtén información para etiquetar recursos de Bigtable.