Udostępnij za pośrednictwem


Dynamiczne widoki zarządzania systemu

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Dynamiczne widoki zarządzania (DMV) oraz dynamiczne funkcje zarządzania (DMF) zwracają informacje o stanie serwera, które mogą być wykorzystane do monitorowania stanu instancji serwera, diagnozowania problemów i dostosowywania wydajności.

Ważne

Dynamiczne widoki i funkcje zarządzania zwracają wewnętrzne, specyficzne dla implementacji dane stanu. Ich schematy i zwracane dane mogą ulec zmianie w przyszłych wersjach programu SQL Server. W związku z tym dynamiczne widoki zarządzania i funkcje w przyszłych wersjach mogą nie być zgodne z dynamicznymi widokami zarządzania i funkcjami w tej wersji. Na przykład w przyszłych wersjach programu SQL Server firma Microsoft może rozszerzyć definicję dowolnego dynamicznego widoku zarządzania, dodając kolumny na końcu listy kolumn. Zalecamy użycie składni SELECT * FROM dynamic_management_view_name w kodzie produkcyjnym, ponieważ liczba zwracanych kolumn może ulec zmianie i przerwać aplikację.

Istnieją dwa typy dynamicznych widoków i funkcji zarządzania:

  • Dynamiczne widoki i funkcje zarządzania w zakresie serwera. Wymagają one pozwolenia VIEW SERVER STATE na serwerze. Dla SQL Server 2022 i późniejszych wymagane jest VIEW SERVER PERFORMANCE STATE lub VIEW SERVER SECURITY STATE dla niektórych DMV związanych z bezpieczeństwem.

  • Dynamiczne widoki i funkcje zarządzania oparte na skali bazy danych. Wymagają one zgody VIEW DATABASE STATE na bazie danych. Dla SQL Server 2022 i późniejszych wymagane jest VIEW DATABASE PERFORMANCE STATE lub VIEW DATABASE SECURITY STATE dla niektórych DMV związanych z bezpieczeństwem.

Dynamiczne widoki zarządzania zapytań

Dynamiczne widoki zarządzania można odwoływać w Transact-SQL instrukcjach, używając nazw dwuczęściowych, trzyczęściowych lub czteroczęściowych. Funkcje zarządzania dynamicznego można natomiast odwoływać w Transact-SQL instrukcjach, używając nazw dwu- lub trzyczęściowych. Dynamiczne widoki i funkcje zarządzania nie mogą być odwołane w Transact-SQL instrukcjach za pomocą nazw jednoczęściowych.

Wszystkie dynamiczne widoki i funkcje zarządzania istnieją w schemacie systemu i stosują tę konwencję nazewnictwa dm_*. Gdy używasz dynamicznego widoku lub funkcji zarządzania, musisz poprzedzać nazwę widoku lub funkcji za pomocą schematu systemowego. Na przykład, aby zapytać dm_os_wait_stats dynamicznym widoku zarządzania, wykonaj następujące zapytanie:

SELECT wait_type,
       wait_time_ms
FROM sys.dm_os_wait_stats;

Wymagane uprawnienia

Aby wykonywać zapytania dotyczące dynamicznego widoku zarządzania lub funkcji, wymagane jest SELECT uprawnienie do obiektu i VIEW SERVER STATE lub VIEW DATABASE STATE uprawnienia. Pozwala to selektywnie ograniczać dostęp użytkownika lub logowania do dynamicznych widoków i funkcji zarządzania. Aby to zrobić, najpierw utwórz użytkownika w master programie , a następnie odmów SELECT użytkownikowi uprawnienia do dynamicznych widoków zarządzania lub funkcji, do których nie chcesz uzyskiwać dostępu. Po tym czasie użytkownik nie może wybierać spośród tych dynamicznych widoków lub funkcji zarządzania, niezależnie od kontekstu bazy danych.

Uwaga / Notatka

Ponieważ DENY ma pierwszeństwo, jeśli użytkownik otrzymał uprawnienia WYŚWIETL STAN SERWERA, ale odmówiono VIEW DATABASE STATE uprawnień, użytkownik może zobaczyć informacje o poziomie serwera, ale nie informacje na poziomie bazy danych.