Konfiguracja serwera: łączenie łańcuchów własności między bazami danych

Dotyczy:SQL Server

Użyj opcji cross db ownership chaining, aby skonfigurować łańcuchowe przypisywanie własności między bazami danych dla wystąpienia programu SQL Server.

Ta opcja serwera umożliwia kontrolowanie łańcucha własności między bazami danych na poziomie bazy danych lub zezwalanie na łańcuch własności między bazami danych dla wszystkich baz danych:

  • Gdy opcja cross db ownership chaining jest wyłączona (0) dla wystąpienia, łańcuchowe przechodzenie własności między bazami danych jest wyłączone dla wszystkich baz danych.

  • Gdy dla wystąpienia włączono opcję cross db ownership chaining (1), łańcuchowanie własności między bazami danych jest włączone dla wszystkich baz danych.

  • Łańcuchy własności między bazami danych można skonfigurować dla poszczególnych baz danych za pomocą klauzuli SET instrukcji ALTER DATABASE. Jeśli tworzysz nową bazę danych, możesz ustawić opcję tworzenia łańcucha własności między bazami danych dla nowej bazy danych przy użyciu instrukcji CREATE DATABASE .

    Ustawienie cross db ownership chaining na 1 nie jest zalecane, chyba że wszystkie bazy danych hostowane przez wystąpienie programu SQL Server muszą uczestniczyć w łańcuchu własności między bazami danych i wiesz, jakie są implikacje zabezpieczeń tego ustawienia.

Sprawdź stan międzybazowego łańcucha własności

Aby określić bieżący stan łańcucha własności między bazami danych, wykonaj następujące zapytanie:

SELECT is_db_chaining_on,
       name
FROM sys.databases;

Wynik 1 wskazuje, że łańcuchowanie własności między bazami danych jest włączone.

Kontroluj łańcuch własności między bazami danych

Przed włączeniem lub wyłączeniem łańcucha własności między bazami danych:

  • Aby włączyć lub wyłączyć łańcuch własności między bazami danych, musisz być członkiem stałej roli serwera sysadmin.

  • Przed wyłączeniem łańcucha własności między bazami danych na serwerze produkcyjnym w pełni przetestuj wszystkie aplikacje, w tym aplikacje innych firm, aby upewnić się, że zmiany nie wpływają na funkcjonalność aplikacji.

  • Możesz zmienić opcję cross db ownership chaining podczas działania serwera, jeśli określisz RECONFIGURE z sp_configure.

  • Jeśli masz bazy danych, które wymagają łańcuchowania własności między bazami danych, zalecaną praktyką jest wyłączenie opcji cross db ownership chaining na poziomie wystąpienia za pomocą polecenia sp_configure; następnie należy włączyć łańcuchowanie własności między bazami danych dla poszczególnych baz, które tego wymagają, za pomocą instrukcji ALTER DATABASE.

Zagrożenie bezpieczeństwa

Włączenie łańcucha własności między bazami danych w programie SQL Server powoduje potencjalną lukę w zabezpieczeniach. Gdy ta funkcja jest aktywna, użytkownik lokalnej bazy danych z podwyższonym poziomem uprawnień może wykorzystać łańcuch własności w celu eskalacji uprawnień i potencjalnie uzyskać dostęp administratora systemu .

Należy unikać włączania łańcucha własności między bazami danych na poziomie instancji i ograniczać jego użycie tylko do zaufanych, powiązanych baz danych.