Exportar (0) Imprimir
Expandir todo

Administrar federaciones de base de datos (Base de datos SQL de Azure)

Actualizado: abril de 2014

ImportantImportante
La implementación actual de las federaciones finalizará con los niveles de servicio Web y Business. Considere implementar soluciones de particionamiento personalizado para maximizar la escalabilidad, la flexibilidad y el rendimiento. Para obtener más información sobre el particionamiento personalizado, vea Ampliar Bases de datos SQL de Azure.

Las instrucciones, funciones y vistas Transact-SQL se pueden usar para crear, modificar y supervisar federaciones. En este tema se incluye información sobre la administración de las federaciones.

Cada federación comienza con una raíz y un miembro de la federación inicial. Estos se crean mediante la instrucción CREATE FEDERATION. Una vez creada la federación, se puede crear una estructura de tablas federadas conectando con la raíz de la federación mediante la instrucción USE FEDERATION y usando CREATE TABLE con la cláusula FEDERATED ON.

Para escalar horizontalmente una federación, se puede usar la instrucción ALTER FEDERATION para dividir un miembro de la federación existente en nuevos miembros. La operación SPLIT identifica el miembro que se va a dividir por el valor de clave de federación especificado como parte de la operación. El miembro de la federación se divide en el valor especificado, dando como resultado dos miembros de la federación nuevos que contienen la suma total de filas contenidas previamente en el miembro de origen.

También se puede usar ALTER FEDERATION para reducir el número de miembros de la federación mediante la operación DROP AT. El rango de valores de clave de federación cubierto anteriormente por el miembro quitado se mueve a un miembro adyacente; sin embargo, esta operación no conserva los datos asociados previamente a este rango.

noteNota
No se pueden crear o quitar miembros de la federación mediante los comandos CREATE DATABASE o DROP DATABASE.

La instrucción DROP FEDERATION se puede usar para quitar una federación, incluidos todos los miembros de la misma y otros metadatos y objetos lógicos asociados.

Además, ALTER DATABASE se admite totalmente en los miembros de la federación.

Si bien es posible conectar directamente con las bases de datos físicas que contienen datos de la federación, no es el método óptimo de conexión ya que para ello es necesario conocer los nombres de base de datos de los miembros individuales. La instrucciónUSE FEDERATION ofrece una conectividad más sencilla al enrutar todas las conexiones a través de la raíz de la federación y no necesita que conozca los nombres de las bases de datos de los miembros individuales, sino solo el nombre y la clave de la federación.

Es posible filtrar las conexiones mediante la cláusula WITH FILTERING=ON, de forma que las operaciones en la conexión tengan como ámbito únicamente la unidad atómica de federación coincidente con el valor de clave de la federación. Con el filtrado activado, el procesador de consultas agrega un predicado que contiene el valor de clave de federación de la columna de federación a todas las consultas que hacen referencia a la tabla federada.

WarningAdvertencia
Una unidad atómica de federación no es un límite de seguridad y el procesador de consultas no garantiza un aislamiento completo de la información entre unidades dentro del mismo miembro de la federación. No emplee el filtrado como mecanismo de aislamiento de seguridad.

Para determinar si una conexión está filtrada o no, sys.dm_exec_sessions devuelve una columna is_filtered. El tipo de datos de esta columna es bit; se devuelve 1 si la conexión está filtrada, de lo contrario se devuelve 0. Si la conexión está filtrada, puede determinar el valor de filtrado mediante FEDERATION_FILTERING_VALUE.

La autenticación en bases de datos que contienen federaciones es igual que en las que no las contienen. SIn embargo, la configuración de entidades de seguridad como usuarios y roles tiene como ámbito la base de datos raíz de la federación y no se replica automáticamente a ningún miembro de la federación.

Los miembros de la federación no pueden tener usuarios con inicios de sesión. En su lugar, las cuentas de usuario creadas en un miembro de la federación se vinculan a la cuenta que tiene el mismo nombre en la raíz de la federación. Dentro de los miembros de la federación, los roles se administran como en una base de datos no federada.

Cuando se crea el primer miembro de la federación, la cuenta que ejecuta la instrucción se convierte en el propietario del miembro de la federación. Para agregar una entidad de seguridad existente de la raíz de la federación al miembro de la federación, el propietario de la base de datos debe crear un usuario en el miembro de la federación con la instrucción CREATE USER y vincularlo a una entidad de seguridad existente en la base de datos raíz de la federación usando la instrucción ALTER USER. El nombre de usuario debe coincidir exactamente con el nombre de entidad de seguridad en sys.database_principals en la raíz de la federación. No se admite la vinculación de usuarios a roles u otros tipos de entidades de seguridad que no sean usuarios.

noteNota
Si el nombre de usuario no coincide exactamente con un nombre de entidad de seguridad existente en la raíz de la federación, se producirá un error en la instrucción y aparecerá el mensaje siguiente:

‘user_name’ no es un user_name válido o no tiene permiso.

Los usuarios y roles dentro de la base de datos raíz de la federación se crean igual que para una base de datos no federada.

Los usuarios vinculados se pueden usar como cuentas de usuario normales dentro de un miembro de la federación. Pueden participar en cláusulas EXECUTE AS y se pueden agregar a roles. ConEXECUTE AS, la cláusula WITH NO REVERT no se admite porque los usuarios vinculados no tienen confianza ni tienen habilitada la opción dbchaining.

Las vistas siguientes proporcionan información sobre las operaciones de federación. Estas vistas muestran información mientras se está ejecutando la operación y se limpia inmediatamente después de completarse la operación.

 

Vista de operación de federación Descripción

sys.dm_federation_operations

Devuelve información sobre las operaciones de nivel de federación.

sys.dm_federation_operation_members

Devuelve información sobre los miembros de la federación implicados en operaciones.

sys.dm_federation_operation_errors

Devuelve información sobre los errores que se han producido durante las operaciones de federación.

sys.dm_federation_operation_error_members

Devuelve información sobre los miembros de la federación implicados en operaciones en las que se ha producido un error.

En las vistas siguientes se pueden obtener metadatos adicionales que describen las federaciones, los miembros y el esquema de distribución empleado dentro de la federación. Además, sys.databases devuelve ahora una columna denominada is_federation_member que contiene un valor de bit que indica si una base de datos es miembro de la federación.

 

Tabla de metadatos de federaciones Descripción

sys.federations

Devuelve las federaciones que hay dentro de una base de datos.

sys.federation_members

Devuelve los miembros de una federación.

sys.federation_distributions

Devuelve el tipo de distribución y los tipos de datos usados por una federación.

sys.federation_member_distributions

Devuelve el nombre de distribución y el rango cubierto por un miembro de la federación.

sys.federated_table_columns

Devuelve información específica de la federación para tablas federadas.

La información histórica sobre operaciones de federación se puede obtener mediante las vistas de historial de federaciones. Esta información le permite reconstruir la información sobre la raíz y los miembros de la federación, incluido el rango cubierto por un miembro, en cualquier momento dado. Las vistas de historial de federaciones son las siguientes:

 

Tabla de historial de federaciones Descripción

sys.federation_history

Devuelve información histórica sobre las federaciones.

sys.federation_member_history

Devuelve información histórica sobre los miembros de la federación.

sys.federation_distribution_history

Devuelve información histórica sobre el tipo de distribución y el tipo de datos de una federación.

sys.federation_member_distribution_history

Devuelve información histórica sobre el rango cubierto por un miembro de la federación.

Vea también

Mostrar:
© 2014 Microsoft