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 em 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 propriedade entre 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 propriedade entre bancos de dados para bancos de dados individuais usando a SET cláusula da ALTER DATABASE instrução. 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 como 1 não é recomendado, a menos que todos os bancos de dados hospedados pela instância do SQL Server devam participar do encadeamento de propriedade entre 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 de 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 membro da função de servidor fixa sysadmin para ativar ou desativar o encadeamento de propriedade entre 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.