Weigeren servermachtigingen (Transact-SQL)
van toepassing op:SQL Server
Azure SQL Database
Azure 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 ArifS
geweigerd. 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
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)