De dynamische systeembeheerweergaven

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric

Dynamische beheerweergaven (DMV's) en dynamische beheerfuncties (DMF's) geven serverstatusinformatie terug die kan worden gebruikt om de gezondheid van een serverinstantie te monitoren, problemen te diagnosticeren en de prestaties af te stemmen.

Belangrijk

Dynamische beheerweergaven en functies geven interne, implementatie-specifieke toestandsgegevens terug. Hun schema's en de gegevens die ze retourneren, kunnen veranderen in toekomstige versies van SQL Server. Daarom zijn dynamische beheerweergaven en -functies in toekomstige releases mogelijk niet compatibel met de dynamische beheerweergaven en -functies in deze release. In toekomstige versies van SQL Server kan Microsoft bijvoorbeeld de definitie van een dynamische beheerweergave uitbreiden door kolommen toe te voegen aan het einde van de lijst met kolommen. Het is raadzaam om de syntaxis SELECT * FROM dynamic_management_view_name in productiecode te gebruiken omdat het aantal geretourneerde kolommen uw toepassing kan wijzigen en verbreken.

Er zijn twee typen dynamische beheersweergaven en -functies:

  • Server-scoped dynamische beheerweergaven en -functies. Deze vereisen toestemming VIEW SERVER STATE op de server. Voor SQL Server 2022 en later is VIEW SERVER PERFORMANCE STATE vereist, of VIEW SERVER SECURITY STATE voor enkele DMV's die met beveiliging te maken hebben.

  • Database-scoped dynamische beheerweergaven en -functies. Deze vereisen toestemming VIEW DATABASE STATE op de database. Voor SQL Server 2022 en later is VIEW DATABASE PERFORMANCE STATE vereist, of VIEW DATABASE SECURITY STATE voor enkele DMV's die met beveiliging te maken hebben.

Vraag dynamische beheerweergaven op

Dynamische beheersweergaven kunnen in Transact-SQL statements worden gebruikt door gebruik te maken van tweedelige, driedelige of vierdelige namen. Dynamische beheerfuncties daarentegen kunnen in Transact-SQL statements worden aangeduid door gebruik te maken van tweedelige of driedelige namen. Dynamische beheerweergaven en functies kunnen niet worden verwezen in Transact-SQL statements door gebruik te maken van eenzijdige namen.

Alle dynamische beheerweergaven en functies bestaan in het sys-schema en volgen deze naamgevingsconventie dm_*. Wanneer je een dynamische beheerweergave of functie gebruikt, moet je de naam van de weergave of functie voorafgaan door het sys-schema te gebruiken. Om bijvoorbeeld de dm_os_wait_stats dynamische beheerweergave te bevragen, voer je de volgende opdracht uit:

SELECT wait_type,
       wait_time_ms
FROM sys.dm_os_wait_stats;

Vereiste toestemmingen

Als u een query wilt uitvoeren op een dynamische beheerweergave of -functie, hebt u toestemming nodig SELECT voor het object en VIEW SERVER STATE of de VIEW DATABASE STATE machtiging. Hierdoor kun je selectief de toegang van een gebruiker of login tot dynamische beheerweergaven en functies beperken. Hiervoor maakt u eerst de gebruiker in master en weigert u vervolgens de gebruikersmachtiging SELECT voor de dynamische beheerweergaven of functies waartoe u ze geen toegang wilt geven. Daarna kan de gebruiker niet meer kiezen uit deze dynamische beheerweergaven of functies, ongeacht de databasecontext van de gebruiker.

Opmerking

Omdat DENY deze prioriteit heeft, kan de gebruiker, als aan een gebruiker machtigingen voor DE STATUS VAN DE WEERGAVESERVER zijn verleend, maar de machtiging geweigerd VIEW DATABASE STATE , informatie op serverniveau zien, maar geen gegevens op databaseniveau.