Delen via


Weigeren servermachtigingen (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 principal de machtiging met GRANT OPTION heeft.

<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 CONTROL SERVER
EEN BESCHIKBAARHEIDSGROEP WIJZIGEN

Van toepassing op: SQL Server (SQL Server 2012 (11.x) tot huidige versie).
CONTROL SERVER
ELKE VERBINDING WIJZIGEN CONTROL SERVER
ALLE REFERENTIES WIJZIGEN CONTROL SERVER
ELKE DATABASE WIJZIGEN CONTROL SERVER
ELK EINDPUNT WIJZIGEN CONTROL SERVER
GEBEURTENISMELDING WIJZIGEN CONTROL SERVER
EEN GEBEURTENISSESSIE WIJZIGEN CONTROL SERVER
EEN GEKOPPELDE SERVER WIJZIGEN CONTROL SERVER
ELKE AANMELDING WIJZIGEN CONTROL SERVER
SERVERCONTROLE WIJZIGEN CONTROL SERVER
EEN SERVERFUNCTIE WIJZIGEN

Van toepassing op: SQL Server (SQL Server 2012 (11.x) tot huidige versie).
CONTROL SERVER
ALTER RESOURCES CONTROL SERVER
STATUS VAN ALTER SERVER CONTROL SERVER
ALTER SETTINGS CONTROL SERVER
ALTER TRACE CONTROL SERVER
VERIFICATIESERVER CONTROL SERVER
VERBINDING MAKEN MET ELKE DATABASE

Van toepassing op: SQL Server (SQL Server 2014 (12.x) tot huidige versie).
CONTROL SERVER
VERBINDING MAKEN MET SQL CONTROL SERVER
CONTROL SERVER CONTROL SERVER
EEN DATABASE MAKEN ELKE DATABASE WIJZIGEN
BESCHIKBAARHEIDSGROEP MAKEN

Van toepassing op: SQL Server (SQL Server 2012 (11.x) tot huidige versie).
EEN BESCHIKBAARHEIDSGROEP WIJZIGEN
DDL-GEBEURTENISMELDING MAKEN GEBEURTENISMELDING WIJZIGEN
EINDPUNT MAKEN ELK EINDPUNT WIJZIGEN
SERVERFUNCTIE MAKEN

Van toepassing op: SQL Server (SQL Server 2012 (11.x) tot huidige versie).
EEN SERVERFUNCTIE WIJZIGEN
MELDING VOOR TRACERINGS EVENT MAKEN GEBEURTENISMELDING WIJZIGEN
ASSEMBLY VOOR EXTERNE TOEGANG CONTROL SERVER
ELKE AANMELDING IMITEREN

Van toepassing op: SQL Server (SQL Server 2014 (12.x) tot huidige versie).
CONTROL SERVER
ALLE GEBRUIKERSVEILIGE ITEMS SELECTEREN

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

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

VERBINDING MAKEN MET ELKE DATABASE-machtiging
Vernieuw CONNECT ANY DATABASE met een aanmelding die verbinding moet maken met alle databases die momenteel bestaan en met nieuwe databases die in de toekomst kunnen worden gemaakt. Verleent geen machtigingen in een database die geen verbinding kan maken. Combineer met SELECT ALL USER SECURABLES of VIEW SERVER STATE zodat een controleproces alle gegevens of alle databasestatussen op het exemplaar van SQL Server kan weergeven.

ELKE AANMELDINGsmachtiging IMITEREN
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.

ALLE GEBRUIKERSMACHTIGINGEN SELECTEREN
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. Machtiging CREATE ENDPOINT weigeren voor een SQL Server-aanmelding met behulp van 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)
servermachtigingen weigeren (Transact-SQL)
servermachtigingen intrekken (Transact-SQL)
Machtigingshiërarchie (Database Engine)
sys.fn_builtin_permissions (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)