DENY Serverrechten (Transact-SQL)

Van toepassing op:SQL ServerAzure 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

toestemming

Hiermee geeft u een machtiging op die kan worden geweigerd op een server. Zie Opmerkingen 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 principal clause om aan te geven dat de principal die als weigeraar van de toestemming wordt geregistreerd, een principal moet zijn die niet de persoon is die de verklaring uitvoert. Stel bijvoorbeeld dat gebruiker Mary 12 is principal_id en gebruiker Raul principal 15. Mary voert DENY SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; uit Nu zal de sys.database_permissions tabel aangeven dat de grantor_principal_id ontkenningsverklaring 15 was (Raul), ook al is de verklaring daadwerkelijk uitgevoerd door gebruiker 13 (Mary).

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

Rechten op de serverscope kunnen alleen worden geweigerd wanneer de huidige database is master.

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.

In Azure SQL Database GRANTworden , REVOKE, en DENY op serverniveau permissies niet ondersteund.

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

Van toepassing op: SQL Server (SQL Server 2012 (11.x) tot huidige versie).
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

Van toepassing op: SQL Server (SQL Server 2012 (11.x) tot huidige versie).
CONTROL SERVER
ALTER RESOURCES CONTROL SERVER
ALTER SERVER STATE CONTROL SERVER
ALTER SETTINGS CONTROL SERVER
ALTER TRACE CONTROL SERVER
AUTHENTICATE SERVER CONTROL SERVER
VERBIND ELKE DATABASE

Van toepassing op: SQL Server (SQL Server 2014 (12.x) tot huidige versie).
CONTROL SERVER
CONNECT SQL CONTROL SERVER
CONTROL SERVER CONTROL SERVER
CREATE ANY DATABASE ALTER ANY 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 ALTER ANY EVENT NOTIFICATION
CREATE ENDPOINT ALTER ANY ENDPOINT
CREATE SERVER ROLE

Van toepassing op: SQL Server (SQL Server 2012 (11.x) tot huidige versie).
ALTER ANY SERVER ROLE
CREATE TRACE EVENT NOTIFICATION ALTER ANY EVENT NOTIFICATION
EXTERNAL ACCESS ASSEMBLY CONTROL SERVER
IMPERSONATE ANY LOGIN

Van toepassing op: SQL Server (SQL Server 2014 (12.x) tot huidige versie).
CONTROL SERVER
SELECT ALL USER SECURABLES

Van toepassing op: SQL Server (SQL Server 2014 (12.x) tot huidige versie).
CONTROL SERVER
SHUTDOWN CONTROL SERVER
UNSAFE ASSEMBLY CONTROL SERVER
VIEW ANY DATABASE VIEW ANY DEFINITION
VIEW ANY DEFINITION CONTROL SERVER
VIEW ANY PERFORMANCE DEFINITION

Van toepassing op: SQL Server 2022 (16.x) en latere versies.
VIEW ANY DEFINITION
VIEW ANY SECURITY DEFINITION

Van toepassing op: SQL Server 2022 (16.x) en latere versies.
VIEW ANY DEFINITION
VIEW SERVER PERFORMANCE STATE

Van toepassing op: SQL Server 2022 (16.x) en latere versies.
VIEW SERVER STATE
VIEW SERVER SECURITY STATE

Van toepassing op: SQL Server 2022 (16.x) en latere versies.
VIEW SERVER STATE
VIEW SERVER STATE ALTER SERVER STATE

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

  • CONNECT ANY DATABASE machtiging

    • Geef CONNECT ANY DATABASE een login die verbinding moet maken met alle bestaande databases en met eventuele nieuwe databases die in de toekomst 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 toe te staan om alle data of databasetoestanden op de instantie van SQL Server te bekijken.
  • IMPERSONATE ANY LOGIN machtiging

    • 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. Bijvoorbeeld, een login met CONTROL SERVER toestemming kan worden geblokkeerd om andere logins te imiteren.
  • SELECT ALL USER SECURABLES machtiging

    • Wanneer dit wordt verleend, kan een aanmelding, zoals een auditor, gegevens bekijken in alle databases waarmee de gebruiker verbinding kan maken. Wanneer geweigerd, voorkomt toegang tot objecten tenzij ze in het sys schema zitten.

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. Weiger de CONNECT SQL-toestemming voor een SQL Server-login en de principals waaraan de login deze opnieuw heeft toegekend

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

USE master;  
DENY CONNECT SQL TO Test CASCADE;  
GO  

B. Weiger CREATE ENDPOINT toestemming voor een SQL Server-login met de AS-optie

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

USE master;  
DENY CREATE ENDPOINT TO Test1 AS Test2;  
GO