sp_column_privileges (Transact-SQL)

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

傳回目前環境中單一資料表的資料行許可權資訊。

Transact-SQL 語法慣例

語法

  
sp_column_privileges [ @table_name = ] 'table_name'   
     [ , [ @table_owner = ] 'table_owner' ]   
     [ , [ @table_qualifier = ] 'table_qualifier' ]   
     [ , [ @column_name = ] 'column' ]  

引數

[ @table_name= ] ' table_name '
這是用來傳回目錄資訊的資料表。 table_name為 sysname ,沒有預設值。 不支援萬用字元模式比對。

[ @table_owner= ] ' table_owner '
這是用來傳回目錄資訊的資料表擁有者。 table_owner sysname ,預設值為 Null。 不支援萬用字元模式比對。 如果未 指定table_owner ,則會套用基礎資料庫管理系統 (DBMS) 的預設資料表可見度規則。

如果目前使用者擁有具有指定名稱的資料表,則會傳回該資料表的資料行。 如果未 指定table_owner ,且目前使用者沒有擁有具有指定 table_name 的資料表,sp_column許可權會尋找具有資料庫擁有者所擁有指定table_name 的資料表 。 如果存在,則會傳回該資料表的資料行。

[ @table_qualifier= ] ' table_qualifier '
這是資料表限定詞的名稱。 table_qualifier sysname ,預設值為 Null。 各種 DBMS 產品支援資料表的三部分命名( 限定詞。 擁有者 name )。 在 SQL Server 中,此資料行代表資料庫名稱。 在某些產品中,它代表資料表資料庫環境的伺服器名稱。

[ @column_name= ] ' column '
這是只取得一個目錄資訊資料行時所使用的單一資料行。 column Nvarchar( 384 ), 預設值為 Null。 如果未 指定資料行 ,則會傳回所有資料行。 在 SQL Server 中, 資料行 代表 sys.columns 資料表中列出的資料行名稱。 資料行 可以使用基礎 DBMS 的萬用字元比對模式來包含萬用字元。 為了達到最大互通性,閘道用戶端應該只假設 ISO 標準模式比對 (% 和 _ 萬用字元)。

結果集

sp_column_privileges相當於 ODBC 中的 SQLColumnPrivileges。 傳回的結果會依TABLE_QUALIFIER、TABLE_OWNER、TABLE_NAME、COLUMN_NAME和 PRIVILEGE 排序。

資料行名稱 資料類型 描述
TABLE_QUALIFIER sysname 資料表限定詞名稱。 此欄位可以是 Null。
TABLE_OWNER sysname 資料表擁有者名稱。 此欄位一律會傳回值。
TABLE_NAME sysname 資料表名稱。 此欄位一律會傳回值。
COLUMN_NAME sysname 傳回TABLE_NAME之每個資料行的資料行名稱。 此欄位一律會傳回值。
GRANTOR sysname 已授與此COLUMN_NAME授與許可權的資料庫使用者名稱給列出的 GRANTEE。 在 SQL Server 中,此資料行一律與TABLE_OWNER相同。 此欄位一律會傳回值。

GRANTOR 資料行可以是資料庫擁有者(TABLE_OWNER),或是資料庫擁有者在 GRANT 語句中使用 WITH GRANT OPTION 子句授與許可權的使用者。
GRANTEE sysname 已由列出的 GRANTOR 授與此COLUMN_NAME許可權的資料庫使用者名稱。 在 SQL Server 中,此資料行一律包含來自 sysusers 資料表的資料庫使用者。 此欄位一律會傳回值。
PRIVILEGE Varchar( 32 其中一個可用的資料行許可權。 資料行許可權可以是下列其中一個值(或定義實作時資料來源所支援的其他值):

SELECT = GRANTEE 可以擷取資料行的資料。

INSERT = GRANTEE 可以在資料表中插入新資料列時,提供此資料行的資料。

UPDATE = GRANTEE 可以修改資料行中的現有資料。

REFERENCES = GRANTEE 可以在主鍵/外鍵關聯性中參考外表中的資料行。 主鍵/外鍵關聯性是使用資料表條件約束來定義。
IS_GRANTABLE Varchar( 3 指出 GRANTEE 是否允許將許可權授與其他使用者(通常稱為「授與授與」許可權)。 可以是 YES、NO 或 Null。 未知或 Null 值是指「授與授與」不適用的資料來源。

備註

使用 SQL Server 時,會授與 GRANT 語句的許可權,並由 REVOKE 語句帶走。

權限

需要架構的 SELECT 許可權。

範例

下列範例會傳回特定資料行的資料行許可權資訊。

USE AdventureWorks2022;  
GO  
EXEC sp_column_privileges @table_name = 'Employee'   
    ,@table_owner = 'HumanResources'  
    ,@table_qualifier = 'AdventureWorks2022'  
    ,@column_name = 'SalariedFlag';  

另請參閱

GRANT (Transact-SQL)
REVOKE (Transact-SQL)
系統預存程序 (Transact-SQL)