DENY Serverbehörigheter (Transact-SQL)

gäller för:SQL ServerAzure 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

tillåtelse

Anger en behörighet som kan nekas på en server. En lista över behörigheterna finns i Kommentarer.

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 rektorn 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 huvudklausulen AS för att ange att huvudpersonen som registreras som nekare av tillståndet ska vara en huvudman som inte utför uttalandet. Till exempel, anta att användaren Mary är principal_id 12 och användaren Raul är principal 15. Mary utför DENY SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; Nu sys.database_permissions kommer tabellen att visa att avstängningsuttalandet grantor_principal_id var 15 (Raul) även om uttalandet faktiskt utfördes av användaren 13 (Mary).

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 på serverns omfattning kan endast nekas när den aktuella databasen är master.

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.

I Azure SQL Database GRANTstöds inte , REVOKE, och DENY servernivåbehörigheter.

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
ADMINISTER BULK OPERATIONS CONTROL SERVER
ALTER ANY AVAILABILITY GROUP

gäller för: SQL Server (SQL Server 2012 (11.x) via aktuella versionen).
CONTROL SERVER
ALTER ANY CONNECTION CONTROL SERVER
ALTER ANY CREDENTIAL CONTROL SERVER
ALTER ANY DATABASE CONTROL SERVER
ALTER ANY ENDPOINT CONTROL SERVER
ALTER ANY EVENT NOTIFICATION CONTROL SERVER
ALTER ANY EVENT SESSION CONTROL SERVER
ALTER ANY LINKED SERVER CONTROL SERVER
ALTER ANY LOGIN CONTROL SERVER
ALTER ANY SERVER AUDIT CONTROL SERVER
ALTER ANY SERVER ROLE

gäller för: SQL Server (SQL Server 2012 (11.x) via aktuella versionen).
CONTROL SERVER
ALTER RESOURCES CONTROL SERVER
ALTER SERVER STATE CONTROL SERVER
ALTER SETTINGS CONTROL SERVER
ALTER TRACE CONTROL SERVER
AUTHENTICATE SERVER CONTROL SERVER
ANSLUT ALLA DATABASE

gäller för: SQL Server (SQL Server 2014 (12.x) via aktuella versionen).
CONTROL SERVER
CONNECT SQL CONTROL SERVER
CONTROL SERVER CONTROL SERVER
CREATE ANY DATABASE ALTER ANY DATABASE
CREATE AVAILABILITY GROUP

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

gäller för: SQL Server (SQL Server 2012 (11.x) via aktuella versionen).
ALTER ANY SERVER ROLE
CREATE TRACE EVENT NOTIFICATION ALTER ANY EVENT NOTIFICATION
EXTERNAL ACCESS ASSEMBLY CONTROL SERVER
IMPERSONATE ANY LOGIN

gäller för: SQL Server (SQL Server 2014 (12.x) via aktuella versionen).
CONTROL SERVER
SELECT ALL USER SECURABLES

gäller för: SQL Server (SQL Server 2014 (12.x) via aktuella versionen).
CONTROL SERVER
SHUTDOWN CONTROL SERVER
UNSAFE ASSEMBLY CONTROL SERVER
VIEW ANY DATABASE VIEW ANY DEFINITION
VIEW ANY DEFINITION CONTROL SERVER
VIEW ANY PERFORMANCE DEFINITION

gäller för: SQL Server 2022 (16.x) och senare versioner.
VIEW ANY DEFINITION
VIEW ANY SECURITY DEFINITION

gäller för: SQL Server 2022 (16.x) och senare versioner.
VIEW ANY DEFINITION
VIEW SERVER PERFORMANCE STATE

gäller för: SQL Server 2022 (16.x) och senare versioner.
VIEW SERVER STATE
VIEW SERVER SECURITY STATE

gäller för: SQL Server 2022 (16.x) och senare versioner.
VIEW SERVER STATE
VIEW SERVER STATE ALTER SERVER STATE

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

  • CONNECT ANY DATABASE behörighet

    • Bevilja CONNECT ANY DATABASE en inloggning som måste ansluta till alla databaser som redan 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 tillåta en granskningsprocess att se all data eller alla databastillstånd på instansen av SQL Server.
  • IMPERSONATE ANY LOGIN behörighet

    • 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. Till exempel kan en inloggning med CONTROL SERVER behörighet blockeras från att utge sig för att vara andra inloggningar.
  • SELECT ALL USER SECURABLES behörighet

    • När den beviljas kan en inloggning, till exempel en granskare, visa data i alla databaser som användaren kan ansluta till. När det nekas, förhindrar åtkomst till objekt om de inte ingår i schemat sys .

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 de principaler som inloggningen har återbeviljat den till

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

USE master;  
DENY CONNECT SQL TO Test 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 Test1. I exemplet används alternativet AS för att ange Test2 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 Test1 AS Test2;  
GO