Sdílet prostřednictvím


sp_table_privileges (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Vrací seznam oprávnění k tabulce (například INSERT, DELETE, UPDATE, SELECT, REFERENCES) pro zadanou tabulku nebo tabulky.

Transact-SQL konvence syntaxe

Syntaxe

sp_table_privileges
    [ @table_name = ] N'table_name'
    [ , [ @table_owner = ] N'table_owner' ]
    [ , [ @table_qualifier = ] N'table_qualifier' ]
    [ , [ @fUsePattern = ] fUsePattern ]
[ ; ]

[ @table_name = ] 'Ntable_name'

Tabulka sloužila k vrácení informací z katalogu. @table_name je nvarchar(384), bez výchozího nastavení. Je podporováno porovnávání vzorů divoké karty.

[ @table_owner = ] N'table_owner'

Vlastník tabulky se používal k vracení informací z katalogu. @table_owner je nvarchar(384), s výchozím hodnotou NULL. Je podporováno porovnávání vzorů divoké karty. Pokud vlastník není určen, platí výchozí pravidla viditelnosti tabulek v základním DBMS.

Pokud aktuální uživatel vlastní tabulku s tímto názvem, sloupce této tabulky se vrátí. Pokud vlastník není specifikován a aktuální uživatel nevlastní tabulku s tímto jménem, tento postup hledá tabulku s určeným table_name vlastněným vlastníkem databáze. Pokud existuje, sloupce této tabulky se vrátí.

[ @table_qualifier = ] N'table_qualifier'

Název kvalifikanta na tabulce. @table_qualifier je sysname, s výchozím .NULL Různé produkty DBMS podporují třídílné pojmenování tabulek (qualifier.owner.name). V SQL Serveru tento sloupec představuje název databáze. V některých produktech představuje název serveru databázového prostředí tabulky.

[ @fUsePattern = ] fUsePattern

Určuje, zda jsou znaky pod podtržítek (_), procento (%) a závorka ([ nebo ]) interpretovány jako žolíkové znaky. Platné hodnoty jsou 0 (pattern matching je vypnuté) a 1 (pattern matching je zapnuté). @fUsePattern je bit, s výchozím nastavením 1.

Hodnoty návratového kódu

Žádné.

Sada výsledků

Název sloupce Datový typ Description
TABLE_QUALIFIER sysname Název kvalifikátoru tabulky. V SQL Serveru tento sloupec představuje název databáze. Toto pole může být .NULL
TABLE_OWNER sysname Jméno majitele stolu. Toto pole vždy vrací hodnotu.
TABLE_NAME sysname Název tabulky Toto pole vždy vrací hodnotu.
GRANTOR sysname Uživatelské jméno databáze, které uděluje oprávnění k tomuto TABLE_NAME uvedenému GRANTEE. V SQL Serveru je tento sloupec vždy stejný jako .TABLE_OWNER Toto pole vždy vrací hodnotu. Sloupec GRANTOR může být buď vlastníkem databáze (TABLE_OWNER), nebo uživatelem, kterému vlastník databáze udělil povolení použitím klauzule WITH GRANT OPTION ve výroku GRANT .
GRANTEE sysname Uživatelské jméno databáze, kterému byly uděleny oprávnění TABLE_NAME od uvedených .GRANTOR V SQL Serveru tento sloupec vždy obsahuje uživatele databáze z pohledu sys.database_principalssystem . Toto pole vždy vrací hodnotu.
PRIVILEGE sysname Jedno z dostupných oprávnění stolu. Oprávnění pro tabulky mohou být jedna z následujících hodnot (nebo jiné hodnoty podporované datovým zdrojem při definování implementace):

SELECT = GRANTEE může získat data pro jeden nebo více sloupců.

INSERT = GRANTEE může poskytovat data pro nové řádky pro jeden nebo více sloupců.

UPDATE = GRANTEE může upravit existující data pro jeden nebo více sloupců.

DELETE = GRANTEE může odstranit řádky ze stolu.

REFERENCES = GRANTEE může odkazovat na sloupec v cizí tabulce ve vztahu primární klíč/cizí klíč. V SQL Serveru jsou vztahy primárního klíče a cizího klíče definovány s tabulkovými omezeními.

Rozsah činnosti dané GRANTEE tabulkové privilegia závisí na zdroji dat. Například UPDATE toto oprávnění může umožnit GRANTEE aktualizovat všechny sloupce v tabulce na jednom datovém zdroji a pouze ty sloupce, pro které má privilegium na GRANTORUPDATE jiném datovém zdroji.
IS_GRANTABLE sysname Označuje, zda je oprávněno GRANTEE udělovat oprávnění jiným uživatelům (často označovaná jako "udělit s grantem"). Může být YES, NOnebo NULL. Neznámá (nebo NULL) hodnota označuje datový zdroj, pro který "grant s grantem" není použitelné.

Poznámky

Uložená sp_table_privileges procedura je ekvivalentní jako SQLTablePrivileges v ODBC. Výsledky vrácené jsou uspořádány podle TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME, a PRIVILEGE.

Povolení

Vyžaduje SELECT povolení ke schématu.

Examples

Následující příklad vrací informace o privilegiích pro všechny tabulky, jejichž názvy začínají na slovo Contact.

USE AdventureWorks2022;
GO

EXECUTE sp_table_privileges @table_name = 'Contact%';