Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Managed Instance
Verleent rechten op systeemobjecten zoals systeemopgeslagen procedures, uitgebreide opgeslagen procedures, functies en views.
Transact-SQL syntaxis-conventies
Syntax
GRANT { SELECT | EXECUTE } ON [ sys. ] system_object TO principal
[ ; ]
Arguments
[ sys. ]
De sys-kwalificatie is alleen vereist als je het hebt over catalogusweergaven en dynamische beheerweergaven.
system_object
Specificeert het object waarop toestemming wordt verleend.
principal
Hiermee geeft u de principal aan waaraan de machtiging wordt verleend.
Remarks
Deze instructie kan worden gebruikt om rechten te verlenen voor bepaalde opgeslagen procedures, uitgebreide opgeslagen procedures, tabelwaardige functies, scalaire functies, weergaven, catalogusweergaven, compatibiliteitsweergaven, INFORMATION_SCHEMA weergaven, dynamische beheerweergaven en systeemtabellen die door SQL Server worden geïnstalleerd. Elk van deze systeemobjecten bestaat als een uniek record in de resourcedatabase van de server (mssqlsystemresource). De resourcedatabase heeft het kenmerk Alleen-lezen. Een link naar het object wordt als record blootgesteld in het sys-schema van elke database. Toestemming om een systeemobject uit te voeren of te selecteren kan worden verleend, geweigerd en ingetrokken.
Het verlenen van toestemming om een object uit te voeren of te selecteren geeft niet per se alle benodigde rechten om het object te gebruiken. De meeste objecten voeren bewerkingen uit waarvoor extra rechten vereist zijn. Bijvoorbeeld, een gebruiker die toestemming heeft gekregen EXECUTE kan sp_addlinkedserver geen gekoppelde server aanmaken tenzij de gebruiker ook lid is van de sysadmin-vaste serverrol.
Met standaardnaamomzetting worden niet-gekwalificeerde procedurenamen omgezet in de resourcedatabase. Daarom is de sys-kwalificatie alleen vereist wanneer je catalogusweergaven en dynamische beheerweergaven specificeert.
Het verlenen van rechten op triggers en op kolommen van systeemobjecten wordt niet ondersteund.
Rechten op systeemobjecten worden behouden tijdens upgrades van SQL Server.
Je moet in de master database staan om rechten te verlenen, en de directeur aan wie je de rechten verleent moet een gebruiker in de master database zijn. Dat wil zeggen, als het server-level rechten zijn, kun je ze niet aan server principals geven, alleen aan database-principals.
Systeemobjecten zijn zichtbaar in de catalogusweergave sys.system_objects . De machtigingen voor systeemobjecten zijn zichtbaar in de sys.database_permissions catalogusweergave in de master database.
De volgende query retourneert informatie over machtigingen van systeemobjecten:
SELECT *
FROM master.sys.database_permissions AS dp
INNER JOIN sys.system_objects AS so
ON dp.major_id = so.object_id
WHERE dp.class = 1 AND so.parent_object_id = 0;
GO
Permissions
Hiervoor is de machtiging CONTROL SERVER vereist.
Examples
A. Verleen SELECT-toestemming op een weergave
Het volgende voorbeeld geeft de SQL Server-loginrechten Sylvester1 om een weergave te selecteren die SQL Server-logins vermeldt. Het voorbeeld geeft vervolgens de extra toestemming die nodig is om metadata te bekijken op SQL Server-logins die de gebruiker niet bezit.
USE master;
GO
GRANT SELECT ON sys.sql_logins TO Sylvester1;
GRANT VIEW SERVER STATE to Sylvester1;
GO
B. Verleen uitvoeringstoestemming voor een uitgebreide opgeslagen procedure
Het volgende voorbeeld geeft EXECUTE toestemming op xp_readmail .Sylvester1
USE master;
GO
GRANT EXECUTE ON xp_readmail TO Sylvester1;
GO