Configuração do servidor: cadeia de propriedade entre bases de dados

Aplica-se a:SQL Server

Utilize a opção cross db ownership chaining para configurar o encadeamento de propriedade entre bases de dados numa instância do SQL Server.

Esta opção de servidor permite controlar o encadeamento de propriedade entre bancos de dados no nível do banco de dados ou permitir o encadeamento de propriedade entre bancos de dados para todos os bancos de dados:

  • Quando cross db ownership chaining estiver desativado (0) para a instância, o encadeamento de propriedade entre bases de dados será desativado para todas as bases de dados.

  • Quando cross db ownership chaining está ativado (1) para a instância, o encadeamento de propriedade entre bases de dados está ativado para todas as bases de dados.

  • Pode definir o encadeamento de propriedade entre bases de dados para bases de dados individuais utilizando a cláusula SET da instrução ALTER DATABASE. Se você estiver criando um novo banco de dados, poderá definir a opção de encadeamento de propriedade entre bancos de dados para o novo banco de dados usando a CREATE DATABASE instrução.

    Definir cross db ownership chaining para 1 não é recomendado, a menos que todas as bases de dados alojadas pela instância do SQL Server tenham de participar no encadeamento de propriedade entre bases de dados e que esteja ciente das implicações de segurança desta definição.

Verificar o estado do encadeamento de propriedade entre bases de dados

Para determinar o status atual do encadeamento de propriedade entre bancos de dados, execute a seguinte consulta:

SELECT is_db_chaining_on,
       name
FROM sys.databases;

Um resultado de 1 indica que o encadeamento de propriedade entre bases de dados está ativado.

Controlo do encadeamento de propriedade entre bases de dados

Antes de ativar ou desativar o encadeamento de propriedade entre bancos de dados:

  • Tem de ser membro da função fixa de servidor sysadmin para ativar ou desativar o encadeamento de propriedade entre bases de dados.

  • Antes de desativar o encadeamento de propriedade entre bancos de dados em um servidor de produção, teste totalmente todos os aplicativos, incluindo aplicativos de terceiros, para garantir que as alterações não afetem a funcionalidade do aplicativo.

  • Você pode alterar a cross db ownership chaining opção enquanto o servidor está em execução se especificar RECONFIGURE com sp_configure.

  • Se tiver bases de dados que exijam encadeamento de propriedade entre bases de dados, a prática recomendada é desativar a opção cross db ownership chaining para a instância com sp_configure; em seguida, ativar o encadeamento de propriedade entre bases de dados para cada base de dados individual que o exija com a instrução ALTER DATABASE.

Risco de segurança

Permitir a cadeia de propriedade entre bases de dados no SQL Server introduz uma potencial vulnerabilidade de segurança. Quando esta funcionalidade está ativa, um utilizador local de base de dados com privilégios elevados pode explorar a cadeia de propriedade para escalar permissões e, potencialmente, obter acesso de administrador de sistemas .

Deves evitar ativar a cadeia de propriedade entre bases de dados ao nível da instância e restringir a sua utilização apenas a bases de dados confiáveis e relacionadas.