Sdílet prostřednictvím


Odepřít oprávnění objektu (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Odmítne oprávnění člena třídy OBJECT zabezpečitelných. Jedná se o členy třídy OBJECT: tabulky, zobrazení, funkce hodnotné tabulkou, uložené procedury, rozšířené uložené procedury, skalární funkce, agregační funkce, fronty služeb a synonyma.

Transact-SQL konvence syntaxe

Syntax

DENY <permission> [ ,...n ] ON   
    [ OBJECT :: ][ schema_name ]. object_name [ ( column [ ,...n ] ) ]  
        TO <database_principal> [ ,...n ]   
    [ CASCADE ]  
        [ AS <database_principal> ]  
  
<permission> ::=  
    ALL [ PRIVILEGES ] | permission [ ( column [ ,...n ] ) ]  
  
<database_principal> ::=   
        Database_user   
    | Database_role   
    | Application_role   
    | Database_user_mapped_to_Windows_User   
    | Database_user_mapped_to_Windows_Group   
    | Database_user_mapped_to_certificate   
    | Database_user_mapped_to_asymmetric_key   
    | Database_user_with_no_login  

Arguments

permission
Určuje oprávnění, které lze odepřít u objektu obsaženého ve schématu. Seznam oprávnění najdete v části Poznámky dále v tomto tématu.

ALL
Odepřít vše neodmítá všechna možná oprávnění. Odepření všech oprávnění ANSI-92 je ekvivalentní zamítnutí všech oprávnění ANSI-92 použitelných pro zadaný objekt. Význam ALL se liší takto:

  • Oprávnění skalárních funkcí: EXECUTE, REFERENCES.
  • Oprávnění funkce s hodnotou tabulky: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
  • Oprávnění uložená procedura: EXECUTE.
  • Oprávnění tabulky: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
  • Zobrazit oprávnění: DELETE, INSERT, REFERENCES, SELECT, UPDATE.

PRIVILEGES
Součástí je dodržování předpisů ANSI-92. Nemění chování funkce ALL.

column
Určuje název sloupce v tabulce, zobrazení nebo funkci s hodnotou tabulky, na které je oprávnění odepřeno. Jsou vyžadovány závorky (). Ve sloupci je možné odepřít pouze oprávnění SELECT, REFERENCES a UPDATE. sloupec lze zadat v klauzuli oprávnění nebo za zabezpečitelným názvem.

Caution

Odepření na úrovni tabulky nemá přednost před udělením na úrovni sloupce. Tato nekonzistence v hierarchii oprávnění byla zachována kvůli zpětné kompatibilitě. U SQL Serveru se toto chování liší, pokud je server nakonfigurovaný tak, aby běžel s konfigurací serveru s povolenou kompatibilitou běžných kritérií. To by však mělo být obecně používáno pouze s opatrností, a ne jako obecná praxe.

NA [ OBJEKT :: ] [ schema_name ] .object_name
Určuje objekt, na kterém je oprávnění odepřeno. Pokud je zadána schema_name, je fráze OBJECT volitelná. Pokud se použije fráze OBJECT, je vyžadován kvalifikátor oboru (::). Pokud není zadán schema_name , použije se výchozí schéma. Pokud je zadán schema_name , je vyžadován kvalifikátor oboru schématu (.).

NA <database_principal>
Určuje objekt zabezpečení, ke kterému se oprávnění odepře.

CASCADE
Označuje, že odepření oprávnění je také odepřeno jiným objektům zabezpečení, kterým byl udělen tímto objektem zabezpečení.

DATABASE_PRINCIPAL AS <>
Určuje objekt zabezpečení, ze kterého objekt zabezpečení, který spouští tento dotaz, odvozuje své právo odepřít oprávnění.

Database_user
Určuje uživatele databáze.

Database_role
Určuje roli databáze.

Application_role
Určuje roli aplikace.

Database_user_mapped_to_Windows_User
Určuje uživatele databáze mapované na uživatele systému Windows.

Database_user_mapped_to_Windows_Group
Určuje uživatele databáze mapované na skupinu Windows.

Database_user_mapped_to_certificate
Určuje uživatele databáze mapované na certifikát.

Database_user_mapped_to_asymmetric_key
Určuje uživatele databáze namapovaný na asymetrický klíč.

Database_user_with_no_login
Určuje uživatele databáze bez odpovídajícího objektu zabezpečení na úrovni serveru.

Remarks

Informace o objektech jsou viditelné v různých zobrazeních katalogu. Další informace naleznete v tématu Zobrazení katalogu objektů (Transact-SQL).

Objekt je zabezpečitelná na úrovni schématu obsažená schématem, který je jeho nadřazeným objektem v hierarchii oprávnění. Nejpřesnější a omezená oprávnění, která lze u objektu odepřít, jsou uvedena v následující tabulce společně s obecnějšími oprávněními, která je zahrnují implikací.

Oprávnění objektu Implicitní oprávnění objektu Implicitní oprávnění schématu
ALTER CONTROL ALTER
CONTROL CONTROL CONTROL
DELETE CONTROL DELETE
EXECUTE CONTROL EXECUTE
INSERT CONTROL INSERT
RECEIVE CONTROL CONTROL
REFERENCES CONTROL REFERENCES
SELECT RECEIVE SELECT
PŘEVEZMĚTE ODPOVĚDNOST CONTROL CONTROL
UPDATE CONTROL UPDATE
ZOBRAZIT SLEDOVÁNÍ ZMĚN CONTROL ZOBRAZIT SLEDOVÁNÍ ZMĚN
ZOBRAZIT DEFINICI CONTROL ZOBRAZIT DEFINICI

Permissions

Vyžaduje oprávnění CONTROL k objektu.

Pokud použijete klauzuli AS, musí zadaný objekt zabezpečení vlastnit objekt, na kterém jsou oprávnění odepřena.

Examples

Následující příklady používají databázi AdventureWorks.

A. Odepření oprávnění SELECT v tabulce

Následující příklad odmítne SELECT oprávnění pro uživatele RosaQdM v tabulce Person.Address.

DENY SELECT ON OBJECT::Person.Address TO RosaQdM;  
GO  

B. Odepření oprávnění EXECUTE u uložené procedury

Následující příklad odmítne EXECUTE oprávnění k uložené procedurě HumanResources.uspUpdateEmployeeHireInfo k roli aplikace volaný Recruiting11.

DENY EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo  
    TO Recruiting11;  
GO   

C. Odepření oprávnění REFERENCES v zobrazení pomocí CASCADE

Následující příklad odmítne REFERENCES oprávnění ke sloupci BusinessEntityID v zobrazení HumanResources.vEmployee uživateli Wanida s CASCADE.

DENY REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee   
    TO Wanida CASCADE;  
GO  

Viz také

Oprávnění k objektu GRANT (Transact-SQL)
Oprávnění k objektu REVOKE (Transact-SQL)
zobrazení katalogu objektů (Transact-SQL)
Oprávnění (databázový stroj)
Hlavní subjekty (databázový stroj)
Securables
sys.fn_builtin_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)