Configuração do servidor: encadeamento de propriedade entre bancos de dados

Aplica-se:SQL Server

Use a opção cross db ownership chaining para configurar o encadeamento de propriedade entre bancos de dados para uma instância do SQL Server.

Essa 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 propriedades de bancos de dados ficará desativado em todos os bancos de dados.

  • Quando cross db ownership chaining estiver ativado (1) para a instância, o encadeamento de propriedade entre bancos de dados está ativado para todos os bancos de dados.

  • Você pode definir o encadeamento de propriedades de banco de dados para bancos de dados individuais com a cláusula SET da instrução ALTER DATABASE. Se você estiver criando um novo banco de dados, poderá definir a opção cross db ownership chaining para o novo banco de dados com a instrução CREATE DATABASE.

    A configuração de cross db ownership chaining para 1 não é recomendável, a menos que todos os bancos de dados hospedados pela instância do SQL Server precisem participar do encadeamento de propriedades de bancos de dados e que você esteja ciente das implicações de segurança dessa configuração.

Verificar o status do encadeamento de propriedade entre bancos 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 igual a 1 indica que o encadeamento de propriedade entre bancos de dados está habilitado.

Controlar a cadeia de propriedade entre bancos de dados

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

  • É necessário ser um membro da função de servidor fixa sysadmin para ativar ou desativar o encadeamento de propriedades de bancos 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 opção cross db ownership chaining enquanto o servidor estiver em execução se você especificar RECONFIGURE com sp_configure.

  • Se você tiver bancos de dados que exigem encadeamento de propriedade entre bancos de dados, a prática recomendada é desativar a opção cross db ownership chaining para a instância usando sp_configure; em seguida, ative o encadeamento de propriedade entre bancos de dados para bancos de dados individuais que exigem isso com a ALTER DATABASE instrução.

Risco de segurança

Habilitar o encadeamento de propriedade entre bancos de dados no SQL Server introduz uma possível vulnerabilidade de segurança. Quando esse recurso está ativo, um usuário de banco de dados local com privilégios elevados pode explorar a cadeia de propriedade para escalar permissões e potencialmente obter acesso sysadmin.

Você deve evitar habilitar o encadeamento de propriedade entre bancos de dados no nível da instância e restringir seu uso apenas a bancos de dados confiáveis e relacionados.