Udostępnij za pomocą


ODMOWA uprawnień obiektu systemowego (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Odmawia uprawnień do obiektów systemowych, takich jak procedury składowane, rozszerzone procedury składowane, funkcje i widoki.

Transact-SQL konwencje składni

Syntax

DENY { SELECT | EXECUTE } ON [ sys. ] system_object TO principal

Arguments

[sys. ]

sys Kwalifikator jest wymagany tylko wtedy, gdy odwołujesz się do widoków katalogu i dynamicznych widoków zarządzania.

system_object

Określa obiekt, na którym odmówiono uprawnień.

principal

Określa podmiot zabezpieczeń, z którego uprawnienie jest odwoływane.

Remarks

Ta instrukcja może służyć do odmowy uprawnień do niektórych procedur składowanych, rozszerzonych procedur składowanych, funkcji wartości tabeli, funkcji skalarnych, widoków, widoków wykazu, widoków zgodności, INFORMATION_SCHEMA widoków, dynamicznych widoków zarządzania i tabel systemowych zainstalowanych przez program SQL Server. Każdy z tych obiektów systemowych istnieje jako unikatowy rekord w bazie danych zasobów (mssqlsystemresource). Baza danych zasobów jest tylko do odczytu. Link do obiektu jest uwidaczniany jako rekord w schemacie sys każdej bazy danych.

Domyślne rozpoznawanie nazw rozpoznaje niekwalifikowane nazwy procedur dla bazy danych zasobów. sys W związku z tym kwalifikator jest wymagany tylko w przypadku określania widoków katalogu i dynamicznych widoków zarządzania.

Caution

Odmowa uprawnień do obiektów systemowych powoduje, że aplikacje zależne od nich kończą się niepowodzeniem. Program SQL Server Management Studio używa widoków wykazu i może nie działać zgodnie z oczekiwaniami, jeśli zmienisz domyślne uprawnienia w widokach wykazu.

Odmowa uprawnień do wyzwalaczy i kolumn obiektów systemowych nie jest obsługiwana.

Uprawnienia do obiektów systemowych są zachowywane podczas uaktualniania programu SQL Server.

Obiekty systemowe są widoczne w widoku wykazu sys.system_objects. Uprawnienia do obiektów systemowych są widoczne w widoku katalogu sys.database_permissions w bazie danych master.

Następujące zapytanie zwraca informacje o uprawnieniach obiektów systemowych:

SELECT *
FROM master.sys.database_permissions AS dp
     INNER JOIN sys.system_objects AS so
         ON dp.major_id = so.object_id
WHERE dp.class = 1
      AND so.parent_object_id = 0;
GO

Permissions

Wymaga CONTROL SERVER uprawnienia.

Examples

W poniższym przykładzie odmowa EXECUTE uprawnień xp_cmdshell do publicznej komunikacji.

DENY EXECUTE ON sys.xp_cmdshell TO PUBLIC;
GO