sp_table_privileges (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體

傳回指定之資料表或資料表的資料表許可權清單,例如INSERTDELETEUPDATESELECTREFERENCES、 。

Transact-SQL 語法慣例

Syntax

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

[ @table_name = ] N'table_name'

用來傳回目錄信息的數據表。 @table_name為 nvarchar(384),沒有預設值。 支援通配符模式比對。

[ @table_owner = ] N'table_owner'

用來傳回目錄信息的數據表擁有者。 @table_owner為 nvarchar(384),預設值為 NULL。 支援通配符模式比對。 如果未指定擁有者,則會套用基礎 DBMS 的預設數據表可見性規則。

如果目前用戶擁有具有指定名稱的數據表,則會傳回該數據表的數據行。 如果未 指定擁有者 ,且目前用戶沒有擁有具有指定 名稱的數據表,則此程式會尋找具有資料庫擁有者所擁有之指定 table_name 的數據表。 如果存在,則會傳回該數據表的數據行。

[ @table_qualifier = ] N'table_qualifier'

數據表限定符的名稱。 @table_qualifier為 sysname,預設值為 NULL。 各種 DBMS 產品支援數據表的三部分命名(qualifier.owner.name)。 在 SQL Server 中,此資料行代表資料庫名稱。 在某些產品中,它代表數據表資料庫環境的伺服器名稱。

[ @fUsePattern = ] fUsePattern

判斷底線 ()、百分比%_) 和括弧 ([]) 字元是否解譯為通配符。 有效值為 0 (模式比對已關閉)和 1 (模式比對為開啟)。 @fUsePattern為 bit,預設值為 1

傳回碼值

無。

結果集

資料行名稱 資料類型 描述
TABLE_QUALIFIER sysname 數據表限定符名稱。 在 SQL Server 中,此資料行代表資料庫名稱。 這個欄位可以是 NULL
TABLE_OWNER sysname 數據表擁有者名稱。 此欄位一律會傳回值。
TABLE_NAME sysname 資料表名稱。 此欄位一律會傳回值。
GRANTOR sysname 授與此 權限的資料庫使用者名稱 TABLE_NAME 給列出的 GRANTEE。 在 SQL Server 中,此數據行一律與 TABLE_OWNER相同。 此欄位一律會傳回值。 此外,GRANTOR 資料行可能是資料庫擁有者 (TABLE_OWNER) 或資料庫擁有者在 WITH GRANT OPTION 語句中使用 GRANT 子句授與許可權的使用者。
GRANTEE sysname 列出的 GRANTOR已授與此許可權TABLE_NAME的資料庫用戶名稱。 在 SQL Server 中,此數據行一律包含檢視中的 sys.database_principalssystem 資料庫使用者。 此欄位一律會傳回值。
PRIVILEGE sysname 其中一個可用的數據表許可權。 資料表權限可以是下列其中一個值(或定義實作時數據源所支援的其他值):

SELECT = GRANTEE 可以擷取一或多個數據行的數據。

INSERT = GRANTEE 可以為一或多個數據行提供新數據列的數據。

UPDATE = GRANTEE 可以修改一或多個數據行的現有數據。

DELETE = GRANTEE 可以從數據表中移除數據列。

REFERENCES = GRANTEE 可以在主鍵/外鍵關聯性中參考外表中的數據行。 在 SQL Server 中,主鍵/外鍵關聯性是使用數據表條件約束來定義。

指定數據表許可權提供給 GRANTEE 的動作範圍取決於數據源。 例如,UPDATE許可權可能會允許 更新一個數據源上數據表中的所有數據行,而只更新GRANTEE對另一個數據源具有UPDATE許可權的數據GRANTOR行。
IS_GRANTABLE sysname 指出 是否 GRANTEE 允許將許可權授與其他使用者(通常稱為「授與授與」許可權)。 可以是 YESNONULL。 未知的 (或 NULL) 值是指不適用「授與授與」的數據源。

備註

sp_table_privileges 存程式相當於 SQLTablePrivileges ODBC 中的 。 傳回的結果會依TABLE_QUALIFIER、、 TABLE_OWNERTABLE_NAMEPRIVILEGE排序。

權限

SELECT需要架構的許可權。

範例

下列範例會傳回名稱開頭為 之 Contact所有數據表的許可權資訊。

USE AdventureWorks2022;
GO
EXEC sp_table_privileges @table_name = 'Contact%';