sp_table_privileges_ex (Transact-SQL)
傳回指定連結伺服器中之指定資料表的權限相關資訊。
語法
sp_table_privileges_ex [ @table_server = ] 'table_server'
[ , [ @table_name = ] 'table_name' ]
[ , [ @table_schema = ] 'table_schema' ]
[ , [ @table_catalog = ] 'table_catalog' ]
[ , [@fUsePattern =] 'fUsePattern']
引數
[@table_server = ] 'table_server'
這是傳回的資訊所屬的連結伺服器名稱。table_server 是 sysname,沒有預設值。[ @table_name = ] 'table_name']
這是提供的資料表權限資訊所屬的資料表名稱。table_name 是 sysname,預設值是 NULL。[@table_schema = ] 'table_schema'
這是資料表結構描述。在某些 DBMS 環境中,這是資料表擁有者。table_schema 是 sysname,預設值是 NULL。[@table_catalog = ] 'table_catalog'
這是指定的 table_name 所在的資料庫名稱。table_catalog 是 sysname,預設值是 NULL。[@fUsePattern =] 'fUsePattern'
判斷是否將 '_'、'%'、'[' 和 ']' 等字元解譯為萬用字元。有效值是 0 (關閉模式比對) 和 1 (開啟模式比對)。fUsePattern 是 bit,預設值是 1。
傳回碼值
無
結果集
資料行名稱 |
資料類型 |
描述 |
---|---|---|
TABLE_CAT |
sysname |
資料表限定詞名稱。各種 DBMS 產品都支援三部份的資料表命名 (qualifier.owner.name)。在 SQL Server 中,這個資料行代表資料庫名稱。在某些產品中,它代表資料表之資料庫環境的伺服器名稱。這個欄位可以是 NULL。 |
TABLE_SCHEM |
sysname |
資料表擁有者名稱。在 SQL Server 中,這個資料行代表建立資料表的資料庫使用者名稱。這個欄位一律會傳回值。 |
TABLE_NAME |
sysname |
資料表名稱。這個欄位一律會傳回值。 |
GRANTOR |
sysname |
已將這份 TABLE_NAME 的權限授與列出的 GRANTEE 之資料庫使用者名稱。在 SQL Server 中,這個資料行一律與 TABLE_OWNER 相同。這個欄位一律會傳回值。另外,GRANTOR 資料行也可能是資料庫擁有者 (TABLE_OWNER),或資料庫擁有者利用 GRANT 陳述式中之 WITH GRANT OPTION 子句來授與權限的使用者。 |
GRANTEE |
sysname |
列出的 GRANTOR 已授與這份 TABLE_NAME 的權限之資料庫使用者名稱。這個欄位一律會傳回值。 |
PRIVILEGE |
varchar(32) |
可用的資料表權限之一。資料表權限可以是下列值之一,或定義實作時,資料來源所支援的其他值: SELECT = GRANTEE 可以擷取一或多個資料行的資料。 INSERT = GRANTEE 可以提供一或多個資料行的新資料列資料。 UPDATE = GRANTEE 可以修改一或多個資料行的現有資料。 DELETE = GRANTEE 可以移除資料表中的資料列。 REFERENCES = GRANTEE 可以在主索引鍵/外部索引鍵關聯性中,參考外部資料表中的資料行。在 SQL Server 中,主索引鍵/外部索引鍵關聯性是利用資料表條件約束來定義的。 特定資料表權限提供給 GRANTEE 的動作範圍,會隨著資料來源而不同。例如,UPDATE 權限可能使 GRANTEE 能夠更新某項資料來源中某份資料表的所有資料行,但只更新另一項資料來源中 GRANTOR 有 UPDATE 權限的資料行。 |
IS_GRANTABLE |
varchar(3) |
指出是否允許 GRANTEE 將權限授與其他使用者。這通常稱為 "grant with grant" 權限。它可以是 YES、NO 或 NULL。未知 (或 NULL) 值是指不適用 "grant with grant" 的資料來源。 |
備註
傳回的結果依 TABLE_QUALIFIER、TABLE_OWNER、TABLE_NAME 和 PRIVILEGE 來排序。
權限
需要結構描述的 SELECT 權限。
範例
下列範例會從指定連結伺服器 Seattle1 中,傳回 AdventureWorks 資料庫中名稱開頭為 Contact 的資料表之權限資訊。(假設 SQL Server 是連結伺服器)。
EXEC sp_table_privileges_ex @table_server = 'Seattle1',
@table_name = 'Contact%',
@table_schema = 'Person',
@table_catalog ='AdventureWorks'