Dela via


Neka objektbehörigheter (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Förhandsversion av Microsoft Fabric

Nekar behörigheter för en medlem i OBJECT-klassen för skyddsbara objekt. Dessa är medlemmar i OBJECT-klassen: tabeller, vyer, tabellvärdesfunktioner, lagrade procedurer, utökade lagrade procedurer, skalärfunktioner, aggregerade funktioner, tjänstköer och synonymer.

Transact-SQL syntaxkonventioner

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
Anger en behörighet som kan nekas för ett schemabaserat objekt. En lista över behörigheterna finns i avsnittet Kommentarer senare i det här avsnittet.

ALL
Att neka ALLA nekar inte alla möjliga behörigheter. Att neka ALLA motsvarar att neka alla ANSI-92-behörigheter som gäller för det angivna objektet. Innebörden av ALLA varierar enligt följande:

  • Skalära funktionsbehörigheter: EXECUTE, REFERENCES.
  • Funktionsbehörigheter för tabellvärde: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
  • Behörigheter för lagrad procedur: KÖR.
  • Tabellbehörigheter: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
  • Visa behörigheter: DELETE, INSERT, REFERENCES, SELECT, UPDATE.

PRIVILEGES
Ingår för ANSI-92-efterlevnad. Ändrar inte beteendet för ALLA.

column
Anger namnet på en kolumn i en tabell, vy eller tabellvärdesfunktion där behörigheten nekas. Parenteserna ( ) krävs. Endast SELECT-, REFERENCES- och UPDATE-behörigheter kan nekas i en kolumn. kan anges i behörighetssatsen eller efter det skyddsbara namnet.

Caution

En nekande på tabellnivå har inte företräde framför ett GRANT på kolumnnivå. Den här inkonsekvensen i behörighetshierarkin har bevarats för bakåtkompatibilitet. I SQL Server är det här beteendet annorlunda om servern är konfigurerad att köras med common criteria compliance enabled server configuration. Detta bör dock i allmänhet endast användas med försiktighet och inte som allmän praxis.

PÅ [ OBJEKT :: ] [ schema_name ] .object_name
Anger det objekt där behörigheten nekas. Object-frasen är valfri om schema_name anges. Om object-frasen används krävs omfångskvalificeraren (::). Om schema_name inte anges används standardschemat. Om schema_name anges krävs schemaomfattningskvalificeraren (.).

TILL <database_principal>
Anger det huvudnamn som behörigheten nekas till.

CASCADE
Anger att behörigheten som nekas också nekas till andra huvudnamn som det har beviljats av det här huvudkontot.

AS-database_principal <>
Anger ett huvudnamn från vilket huvudnamnet som kör den här frågan härleder sin rätt att neka behörigheten.

Database_user
Anger en databasanvändare.

Database_role
Anger en databasroll.

Application_role
Anger en programroll.

Database_user_mapped_to_Windows_User
Anger en databasanvändare som mappats till en Windows-användare.

Database_user_mapped_to_Windows_Group
Anger en databasanvändare som mappats till en Windows-grupp.

Database_user_mapped_to_certificate
Anger en databasanvändare som mappats till ett certifikat.

Database_user_mapped_to_asymmetric_key
Anger en databasanvändare som mappats till en asymmetrisk nyckel.

Database_user_with_no_login
Anger en databasanvändare utan motsvarande huvudnamn på servernivå.

Remarks

Information om objekt visas i olika katalogvyer. Mer information finns i Objektkatalogvyer (Transact-SQL).

Ett objekt är en skyddsnivå på schemanivå som ingår i schemat som är dess överordnade objekt i behörighetshierarkin. De mest specifika och begränsade behörigheter som kan nekas för ett objekt visas i följande tabell, tillsammans med de mer allmänna behörigheter som omfattar dem underförstått.

Object permission Underförstådd av objektbehörighet Underförstådd av schemabehörighet
ALTER CONTROL ALTER
CONTROL CONTROL CONTROL
DELETE CONTROL DELETE
EXECUTE CONTROL EXECUTE
INSERT CONTROL INSERT
RECEIVE CONTROL CONTROL
REFERENCES CONTROL REFERENCES
SELECT RECEIVE SELECT
TAKE OWNERSHIP CONTROL CONTROL
UPDATE CONTROL UPDATE
VISA ÄNDRINGSSPÅRNING CONTROL VISA ÄNDRINGSSPÅRNING
VIEW DEFINITION CONTROL VIEW DEFINITION

Permissions

Kräver KONTROLL-behörighet för objektet.

Om du använder AS-satsen måste det angivna huvudkontot äga det objekt där behörigheter nekas.

Examples

I följande exempel används databasen AdventureWorks.

A. Neka SELECT-behörighet i en tabell

I följande exempel nekas SELECT behörighet till användaren RosaQdM i tabellen Person.Address.

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

B. Neka EXECUTE-behörighet för en lagrad procedur

I följande exempel nekas EXECUTE behörighet för den lagrade proceduren HumanResources.uspUpdateEmployeeHireInfo till en programroll med namnet Recruiting11.

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

C. Neka behörigheten REFERENSER i en vy med CASCADE

I följande exempel nekas REFERENCES behörighet för kolumnen BusinessEntityID i vyn HumanResources.vEmployee till användaren Wanida med CASCADE.

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

See Also

BEVILJA objektbehörigheter (Transact-SQL)
ÅTERKALLA objektbehörigheter (Transact-SQL)
objektkatalogvyer (Transact-SQL)
Behörigheter (Databasmotor)
huvudnamn (databasmotor)
Securables
sys.fn_builtin_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)