sp_column_privileges (Transact-SQL)
適用於:SQL Server
Azure SQL Database
Azure 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)
意見反應
提交並檢視相關的意見反應