DENY Serverbehörigheter (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Nekar behörigheter på en server.

Transact-SQL syntaxkonventioner

Syntax

DENY permission [ ,...n ]   
    TO <grantee_principal> [ ,...n ]  
    [ CASCADE ]  
    [ AS <grantor_principal> ]   
  
<grantee_principal> ::= SQL_Server_login   
    | SQL_Server_login_mapped_to_Windows_login  
    | SQL_Server_login_mapped_to_Windows_group  
    | SQL_Server_login_mapped_to_certificate  
    | SQL_Server_login_mapped_to_asymmetric_key  
    | server_role  
  
<grantor_principal> ::= SQL_Server_login   
    | SQL_Server_login_mapped_to_Windows_login  
    | SQL_Server_login_mapped_to_Windows_group  
    | SQL_Server_login_mapped_to_certificate  
    | SQL_Server_login_mapped_to_asymmetric_key  
    | server_role  

Argument

behörighet
Anger en behörighet som kan nekas på en server. En lista över behörigheterna finns i avsnittet Kommentarer senare i det här avsnittet.

KASKAD
Anger att behörigheten nekas till det angivna huvudkontot och till alla andra huvudnamn som huvudkontot har beviljat behörigheten till. Krävs när huvudpersonen har tillstånd med GRANT OPTION.

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

AS-<grantor_principal>
Anger det huvudnamn som huvudkontot som kör frågan härleder sin rätt att neka behörigheten. Använd AS-huvudsatsen för att ange att huvudkontot som registrerats som nekare av behörigheten ska vara ett annat huvudnamn än den person som kör -instruktionen. Anta till exempel att användaren Mary är principal_id 12 och att användaren Raul är huvudnamn 15. Mary kör DENY SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; Nu visar tabellen sys.database_permissions att grantor_principal_id av neka-instruktionen var 15 (Raul) trots att instruktionen faktiskt kördes av användaren 13 (Mary).

Användningen av AS i den här instruktionen innebär inte möjligheten att personifiera en annan användare.

SQL_Server_login
Anger en SQL Server-inloggning.

SQL_Server_login_mapped_to_Windows_login
Anger en SQL Server-inloggning som mappats till en Windows-inloggning.

SQL_Server_login_mapped_to_Windows_group
Anger en SQL Server-inloggning mappad till en Windows-grupp.

SQL_Server_login_mapped_to_certificate
Anger en SQL Server-inloggning mappad till ett certifikat.

SQL_Server_login_mapped_to_asymmetric_key
Anger en SQL Server-inloggning mappad till en asymmetrisk nyckel.

server_role
Anger en serverroll.

Anmärkningar

Behörigheter i serveromfånget kan endast nekas när den aktuella databasen är huvuddatabas.

Information om serverbehörigheter kan visas i sys.server_permissions katalogvy och information om serverhuvudnamn kan visas i sys.server_principals katalogvy. Information om medlemskap i serverroller kan visas i sys.server_role_members katalogvyn.

En server är den högsta nivån i behörighetshierarkin. De mest specifika och begränsade behörigheter som kan nekas på en server visas i följande tabell.

Serverbehörighet Underförstått av serverbehörighet
ADMINISTRERA MASSÅTGÄRDER KONTROLLSERVER
ÄNDRA NÅGON AVAILABILITY GROUP

gäller för: SQL Server (SQL Server 2012 (11.x) via aktuella versionen).
KONTROLLSERVER
ÄNDRA ALLA ANSLUTNINGAR KONTROLLSERVER
ÄNDRA NÅGON CREDENTIAL KONTROLLSERVER
ÄNDRA NÅGON DATABASE KONTROLLSERVER
ÄNDRA NÅGON ENDPOINT KONTROLLSERVER
ÄNDRA NÅGON EVENT NOTIFICATION KONTROLLSERVER
ÄNDRA NÅGON EVENT SESSION KONTROLLSERVER
ÄNDRA EN LÄNKAD SERVER KONTROLLSERVER
ÄNDRA NÅGON LOGIN KONTROLLSERVER
ÄNDRA NÅGON SERVER AUDIT KONTROLLSERVER
ÄNDRA NÅGON SERVER ROLE

gäller för: SQL Server (SQL Server 2012 (11.x) via aktuella versionen).
KONTROLLSERVER
ÄNDRA RESURSER KONTROLLSERVER
ÄNDRA SERVERTILLSTÅND KONTROLLSERVER
ÄNDRA INSTÄLLNINGAR KONTROLLSERVER
ALTER TRACE KONTROLLSERVER
AUTENTISERA SERVER KONTROLLSERVER
ANSLUT ALLA DATABASE

gäller för: SQL Server (SQL Server 2014 (12.x) via aktuella versionen).
KONTROLLSERVER
ANSLUT SQL KONTROLLSERVER
KONTROLLSERVER KONTROLLSERVER
SKAPA VALFRITT DATABASE ÄNDRA NÅGON DATABASE
CREATE AVAILABILITY GROUP

gäller för: SQL Server (SQL Server 2012 (11.x) via aktuella versionen).
ÄNDRA NÅGON AVAILABILITY GROUP
SKAPA DDL EVENT NOTIFICATION ÄNDRA NÅGON EVENT NOTIFICATION
CREATE ENDPOINT ÄNDRA NÅGON ENDPOINT
CREATE SERVER ROLE

gäller för: SQL Server (SQL Server 2012 (11.x) via aktuella versionen).
ÄNDRA NÅGON SERVER ROLE
SKAPA SPÅRNING EVENT NOTIFICATION ÄNDRA NÅGON EVENT NOTIFICATION
EXTERN ÅTKOMST ASSEMBLY KONTROLLSERVER
PERSONIFIERA ALLA LOGIN

gäller för: SQL Server (SQL Server 2014 (12.x) via aktuella versionen).
KONTROLLSERVER
VÄLJ ALLA USER SKYDDSBARA

gäller för: SQL Server (SQL Server 2014 (12.x) via aktuella versionen).
KONTROLLSERVER
AVSTÄNGNING KONTROLLSERVER
OSÄKRA ASSEMBLY KONTROLLSERVER
VIEW NÅGON DATABASE VIEW VALFRI DEFINITION
VIEW VALFRI DEFINITION KONTROLLSERVER
VIEW SERVERTILLSTÅND ÄNDRA SERVERTILLSTÅND

Följande tre serverbehörigheter lades till i SQL Server 2014 (12.x).

KOPPLA IN VILKEN SOM HELST DATABASE Tillstånd
Giv CONNECT ANY DATABASE till en inloggning som måste ansluta till alla databaser som för närvarande finns och till eventuella nya databaser som kan skapas i framtiden. Beviljar inte någon behörighet i någon databas utöver anslutning. Kombinera med SELECT ALL USER SECURABLES eller VIEW SERVER STATE för att låta en granskningsprocess visa all data eller alla databasstatus på instansen av SQL Server.

UTGER SIG FÖR ATT VARA NÅGON LOGIN Tillstånd
När den beviljas kan en mellannivåprocess personifiera kontot för klienter som ansluter till den, eftersom den ansluter till databaser. När du nekas kan en högprivilegierad inloggning blockeras från att personifiera andra inloggningar. En inloggning med KONTROLLSERVER behörighet kan till exempel blockeras från att personifiera andra inloggningar.

VÄLJ ALLA USER Tillstånd för VÄRDEPAPPER
När den beviljas kan en inloggning, till exempel en granskare, visa data i alla databaser som användaren kan ansluta till. När nekad, förhindrar åtkomst till objekt om de inte finns i sys- schema.

Behörigheter

Kräver kontrollserverbehörighet eller ägarskap för det skyddbara objektet. Om du använder AS-satsen måste det angivna huvudkontot äga det skydd som behörigheter nekas för.

Exempel

A. Neka CONNECT SQL-behörighet till en SQL Server-inloggning och huvudnamn som inloggningen har regranterat den till

I följande exempel nekas CONNECT SQL behörighet till SQL Server-inloggningen Annika och till de huvudnamn som hon har beviljat behörigheten till.

USE master;  
DENY CONNECT SQL TO Annika CASCADE;  
GO  

B. Neka CREATE ENDPOINT behörighet till en SQL Server-inloggning med AS-alternativet

I följande exempel nekas CREATE ENDPOINT behörighet till användaren ArifS. I exemplet används alternativet AS för att ange MandarP som det huvudnamn som det verkställande huvudkontot härleder utfärdaren från för att göra det.

USE master;  
DENY CREATE ENDPOINT TO ArifS AS MandarP;  
GO  

Se även

GRANT (Transact-SQL)
DENY (Transact-SQL)
DENY Serverbehörigheter (Transact-SQL)
REVOKE Serverbehörigheter (Transact-SQL)
behörighetshierarki (databasmotor)
sys.fn_builtin_permissions (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)