Configuración del servidor: encadenamiento de propiedad entre bases de datos

Se aplica a:SQL Server

Use la opción cross db ownership chaining para configurar el encadenamiento de propiedad entre bases de datos para una instancia de SQL Server.

Esta opción del servidor permite controlar el encadenamiento de propiedad entre bases de datos a nivel de base de datos o permitir el encadenamiento de propiedad entre bases de datos para todas las bases de datos:

  • Cuando cross db ownership chaining está desactivado (0) para la instancia, el encadenamiento de propiedad entre bases de datos está deshabilitado para todas las bases de datos.

  • Cuando cross db ownership chaining está activado (1) para la instancia, el encadenamiento de propiedad entre bases de datos está activado para todas las bases de datos.

  • Puede establecer el encadenamiento de propiedad entre bases de datos en bases de datos individuales mediante la cláusula SET de la instrucción ALTER DATABASE. Si va a crear una nueva base de datos, puede establecer la opción de encadenamiento de propiedad entre bases de datos en la nueva base de datos mediante la instrucción CREATE DATABASE.

    No se recomienda establecer cross db ownership chaining en 1 a menos que todas las bases de datos alojadas por la instancia de SQL Server deban participar en el encadenamiento de propiedad entre bases de datos y sea consciente de las implicaciones de seguridad de esta configuración.

Comprobación del estado del encadenamiento de propiedad entre bases de datos

Para determinar el estado actual del encadenamiento de propiedad entre bases de datos, ejecute la siguiente consulta:

SELECT is_db_chaining_on,
       name
FROM sys.databases;

Un resultado de 1 indica que el encadenamiento de propiedad entre bases de datos está habilitado.

Control del encadenamiento de propiedad entre bases de datos

Antes de activar o desactivar el encadenamiento de propiedad entre bases de datos:

  • Debe ser miembro del rol fijo de servidor sysadmin para activar o desactivar el encadenamiento de propiedad entre bases de datos.

  • Antes de desactivar el encadenamiento de propiedad entre bases de datos en un servidor de producción, pruebe completamente todas las aplicaciones, incluidas las aplicaciones de terceros, para asegurarse de que los cambios no afectan a la funcionalidad de la aplicación.

  • Puede cambiar la cross db ownership chaining opción mientras se ejecuta el servidor si especifica RECONFIGURE con sp_configure.

  • Si tiene bases de datos que requieren encadenamiento de propiedad entre bases de datos, la práctica recomendada es desactivar la cross db ownership chaining opción para la instancia mediante sp_configure; a continuación, active el encadenamiento de propiedad entre bases de datos para bases de datos individuales que lo requieran con la ALTER DATABASE instrucción .

Riesgo de seguridad

La habilitación del encadenamiento de propiedad entre bases de datos en SQL Server presenta una posible vulnerabilidad de seguridad. Cuando esta característica está activa, un usuario local de la base de datos con privilegios elevados puede aprovechar el encadenamiento de propiedad y ampliar así los permisos para potencialmente obtener acceso sysadmin.

Se debería evitar habilitar el encadenamiento de propiedad entre bases de datos a nivel de instancia y restringir su uso solo a bases de datos relacionadas y de confianza.