DENY Serverrechten (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Weigert machtigingen op een server.

Transact-SQL syntaxisconventies

Syntaxis

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  

Argumenten

machtiging
Hiermee geeft u een machtiging op die kan worden geweigerd op een server. Zie de sectie Opmerkingen verderop in dit onderwerp voor een lijst met machtigingen.

CASCADE
Geeft aan dat de machtiging wordt geweigerd aan de opgegeven principal en aan alle andere principals waaraan de principal de machtiging heeft verleend. Vereist wanneer de directeur toestemming heeft met GRANT OPTION.

<SERVER_PRINCIPAL>
Hiermee geeft u de principal waarvoor de machtiging wordt geweigerd.

AS-<grantor_principal>
Hiermee geeft u de principal op waaruit de principal die deze query uitvoert, het recht heeft om de machtiging te weigeren. Gebruik de AS-principalcomponent om aan te geven dat de principal die is vastgelegd als de denier van de machtiging een andere principal moet zijn dan de persoon die de instructie uitvoert. Stel dat gebruiker Mary principal_id 12 is en gebruiker Raul principal 15 is. Mary voert DENY SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; Nu geeft de sys.database_permissions tabel aan dat de grantor_principal_id van de instructie weigeren 15 (Raul) was, ook al is de instructie daadwerkelijk uitgevoerd door gebruiker 13 (Mary).

Het gebruik van AS in deze instructie impliceert niet de mogelijkheid om een andere gebruiker te imiteren.

SQL_Server_login
Hiermee geeft u een SQL Server-aanmelding op.

SQL_Server_login_mapped_to_Windows_login
Hiermee geeft u een SQL Server-aanmelding die is toegewezen aan een Windows-aanmelding.

SQL_Server_login_mapped_to_Windows_group
Hiermee geeft u een SQL Server-aanmelding die is toegewezen aan een Windows-groep.

SQL_Server_login_mapped_to_certificate
Hiermee geeft u een SQL Server-aanmelding die is toegewezen aan een certificaat.

SQL_Server_login_mapped_to_asymmetric_key
Hiermee geeft u een SQL Server-aanmelding die is toegewezen aan een asymmetrische sleutel.

server_role
Hiermee geeft u een serverfunctie.

Opmerkingen

Machtigingen op het serverbereik kunnen alleen worden geweigerd wanneer de huidige database hoofddatabase is.

Informatie over servermachtigingen kan worden weergegeven in de sys.server_permissions catalogusweergave en informatie over server-principals kan worden weergegeven in de sys.server_principals catalogusweergave. Informatie over het lidmaatschap van serverfuncties kan worden weergegeven in de sys.server_role_members catalogusweergave.

Een server is het hoogste niveau van de machtigingshiërarchie. De meest specifieke en beperkte machtigingen die op een server kunnen worden geweigerd, worden vermeld in de volgende tabel.

Servermachtiging Impliciet door servermachtiging
BULKBEWERKINGEN BEHEREN besturingsserver
WIJZIG EEN AVAILABILITY GROUP

Van toepassing op: SQL Server (SQL Server 2012 (11.x) tot huidige versie).
besturingsserver
ELKE VERBINDING WIJZIGEN besturingsserver
WIJZIG EEN CREDENTIAL besturingsserver
WIJZIG EEN DATABASE besturingsserver
WIJZIG EEN ENDPOINT besturingsserver
WIJZIG EEN EVENT NOTIFICATION besturingsserver
WIJZIG EEN EVENT SESSION besturingsserver
EEN GEKOPPELDE SERVER WIJZIGEN besturingsserver
WIJZIG EEN LOGIN besturingsserver
WIJZIG EEN SERVER AUDIT besturingsserver
WIJZIG EEN SERVER ROLE

Van toepassing op: SQL Server (SQL Server 2012 (11.x) tot huidige versie).
besturingsserver
ALTER BRONNEN besturingsserver
STATUS VAN ALTER SERVER besturingsserver
INSTELLINGEN WIJZIGEN besturingsserver
ALTER TRACE (gebruikersmachtiging voor het traceren van gebeurtenissen) besturingsserver
VERIFICATIESERVER besturingsserver
VERBIND ELKE DATABASE

Van toepassing op: SQL Server (SQL Server 2014 (12.x) tot huidige versie).
besturingsserver
VERBINDING MAKEN MET SQL besturingsserver
besturingsserver besturingsserver
MAAK ELKE DATABASE WIJZIG EEN DATABASE
CREATE AVAILABILITY GROUP

Van toepassing op: SQL Server (SQL Server 2012 (11.x) tot huidige versie).
WIJZIG EEN AVAILABILITY GROUP
CREATE DDL EVENT NOTIFICATION WIJZIG EEN EVENT NOTIFICATION
CREATE ENDPOINT WIJZIG EEN ENDPOINT
CREATE SERVER ROLE

Van toepassing op: SQL Server (SQL Server 2012 (11.x) tot huidige versie).
WIJZIG EEN SERVER ROLE
MAAK TRACE EVENT NOTIFICATION WIJZIG EEN EVENT NOTIFICATION
EXTERNE TOEGANG ASSEMBLY besturingsserver
IMITEER EEN LOGIN

Van toepassing op: SQL Server (SQL Server 2014 (12.x) tot huidige versie).
besturingsserver
SELECTEER ALLE USER BEVEILIGBARE GOEDEREN

Van toepassing op: SQL Server (SQL Server 2014 (12.x) tot huidige versie).
besturingsserver
AFSLUITEN besturingsserver
ONVEILIG ASSEMBLY besturingsserver
VIEW ELKE DATABASE VIEW ELKE DEFINITIE
VIEW ELKE DEFINITIE besturingsserver
VIEW SERVERSTATUS STATUS VAN ALTER SERVER

De volgende drie servermachtigingen zijn toegevoegd in SQL Server 2014 (12.x).

VERBIND ELKE DATABASE Toestemming
Ken CONNECT ANY DATABASE toe aan een login die verbinding moet maken met alle bestaande databases en met eventuele nieuwe databases die in de toekomst kunnen worden aangemaakt. Verleent geen machtigingen in een database die geen verbinding kan maken. Combineer met SELECT ALL USER SECURABLES of VIEW SERVER STATE om een auditproces in staat te stellen alle data of databasetoestanden op de instantie van SQL Server te bekijken.

IMITEER EEN LOGIN Toestemming
Wanneer dit wordt verleend, kan een proces in de middelste laag het account imiteren van clients die er verbinding mee maken, omdat het verbinding maakt met databases. Wanneer dit wordt geweigerd, kan een aanmelding met hoge bevoegdheden worden geblokkeerd voor het imiteren van andere aanmeldingen. Een aanmelding met CONTROL SERVER- machtiging kan bijvoorbeeld worden geblokkeerd voor het imiteren van andere aanmeldingen.

SELECTEER ALLES USER Toestemming voor VERZEKERBARE Goederen
Wanneer dit wordt verleend, kan een aanmelding, zoals een auditor, gegevens bekijken in alle databases waarmee de gebruiker verbinding kan maken. Wanneer de toegang wordt geweigerd, voorkomt u de toegang tot objecten, tenzij deze zich in het sys-schema bevinden.

Machtigingen

Vereist CONTROL SERVER-machtiging of eigendom van het beveiligbare. Als u de AS-component gebruikt, moet de opgegeven principal eigenaar zijn van het beveiligbare waarvoor machtigingen worden geweigerd.

Voorbeelden

Een. Verbinding maken met SQL-machtigingen weigeren voor een SQL Server-aanmelding en -principals waarvoor de aanmelding is toegestaan

In het volgende voorbeeld wordt CONNECT SQL machtiging geweigerd voor de SQL Server-aanmelding Annika en aan de principals waaraan ze de machtiging heeft verleend.

USE master;  
DENY CONNECT SQL TO Annika CASCADE;  
GO  

B. Toestemming CREATE ENDPOINT weigeren voor een SQL Server-login met de AS-optie

In het volgende voorbeeld wordt CREATE ENDPOINT machtiging voor de gebruiker ArifSgeweigerd. In het voorbeeld wordt de optie AS gebruikt om MandarP op te geven als de principal waaruit de uitvoerende principal de autoriteit heeft afgeleid.

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

Zie ook

GRANT (Transact-SQL)
DENY (Transact-SQL)
DENY Servermachtigingen (Transact-SQL)
REVOKE Servermachtigingen (Transact-SQL)
Machtigingshiërarchie (Database Engine)
sys.fn_builtin_permissions (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)