Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí na:SQL ServerAzure
SQL Managed Instance
Uděluje oprávnění k systémovým objektům, jako jsou systémové uložené procedury, rozšířené uložené procedury, funkce a pohledy.
Syntax
GRANT { SELECT | EXECUTE } ON [ sys. ] system_object TO principal
[ ; ]
Arguments
[sys. ]
Kvalifikátor pro sys je potřeba pouze tehdy, když mluvíte o katalogových a dynamických manažerských pohledech.
system_object
Specifikuje objekt, na který je oprávnění uděleno.
principal
Určuje objekt zabezpečení, ke kterému se oprávnění uděluje.
Remarks
Tento příkaz lze použít k udělení oprávnění k určitým uloženým procedurám, rozšířeným uloženým procedurám, funkcím s tabulkovými hodnotami, skalárním funkcím, pohledům, katalogovým pohledům, kompatibilitním pohledům, pohledům, INFORMATION_SCHEMA dynamickým správním pohledům a systémovým tabulkám instalovaným SQL Server. Každý z těchto systémových objektů existuje jako jedinečný záznam v databázi zdrojů serveru (mssqlsystemresource). Databáze prostředků je určená jen pro čtení. Odkaz na objekt je vystaven jako záznam v systémovém schématu každé databáze. Povolení ke spuštění nebo výběru systémového objektu může být uděleno, zamítnuto a odebráno.
Udělení oprávnění k vykonání nebo výběru objektu nemusí nutně sdělit všechna oprávnění potřebná k použití objektu. Většina objektů provádí operace, pro které jsou potřeba další oprávnění. Například uživatel, kterému je uděleno EXECUTE oprávnění , sp_addlinkedserver nemůže vytvořit propojený server, pokud není zároveň členem role pevného správce systému .
Výchozí překlad názvů překládá nekvalifikované názvy procedur do databáze prostředků. Proto je sys kvalifikátor potřeba pouze tehdy, když specifikujete katalogové a dynamické manažerské pohledy.
Udělování oprávnění na triggery a sloupce systémových objektů není podporováno.
Oprávnění na systémových objektech jsou zachována během upgradů SQL Server.
Musíte být v databázi master , abyste mohli udělit oprávnění, a principál, kterému je udělujete, musí být uživatelem v databázi master . To znamená, že pokud jde o serverová oprávnění, nemůžete je udělit principalům serveru, pouze principalům databáze.
Systémové objekty jsou viditelné v zobrazení katalogu sys.system_objects. Oprávnění k systémovým objektům jsou viditelná v zobrazení katalogu sys.database_permissions v databázi master.
Následující dotaz vrátí informace o oprávněních systémových objektů:
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
Vyžaduje oprávnění CONTROL SERVER.
Examples
A. Udělit povolení SELECT k zobrazení
Následující příklad uděluje SQL Server oprávnění k Sylvester1 přihlášení vybrat pohled, který uvádí přihlašovací údaje do SQL Server. Příklad pak uděluje dodatečné oprávnění potřebné k prohlížení metadat na přihlašovacích osobách SQL Server, které uživatel nevlastní.
USE master;
GO
GRANT SELECT ON sys.sql_logins TO Sylvester1;
GRANT VIEW SERVER STATE to Sylvester1;
GO
B. Udělit povolení EXECUTE na rozšířenou uloženou proceduru
Následující příklad dává EXECUTE povolení na xp_readmail .Sylvester1
USE master;
GO
GRANT EXECUTE ON xp_readmail TO Sylvester1;
GO