返回當前環(huán)境中單個表的列特權(quán)信息。
sp_column_privileges [ @table_name = ] 'table_name'
[ , [ @table_owner = ] 'table_owner' ]
[ , [ @table_qualifier = ] 'table_qualifier' ]
[ , [ @column_name = ] 'column' ]
[@table_name =] 'table_name'
用來返回目錄信息的表。table_name 的數(shù)據(jù)類型為 sysname,沒有默認值。不支持通配符模式匹配。
[@table_owner =] 'table_owner'
是用于返回目錄信息的表所有者。table_owner 的數(shù)據(jù)類型為 sysname,默認值為 NULL。不支持通配符模式匹配。如果沒有指定 table_owner,則應用基礎(chǔ)數(shù)據(jù)庫管理系統(tǒng) (DBMS) 默認的表的可視性規(guī)則。
在 Microsoft® SQL Server™ 中,如果當前用戶擁有的表具有指定名稱,則返回該表的列。如果沒有指定 table_owner,并且當前用戶不擁有指定 table_name 的表,則 sp_column_privileges 搜索數(shù)據(jù)庫所有者擁有的指定 table_name 的表。如果有,則返回該表的列。
[@table_qualifier =] 'table_qualifier'
是表限定符的名稱。table_qualifier 的數(shù)據(jù)類型為 sysname,默認值為 NULL。多種 DBMS 產(chǎn)品支持表的三部分命名方式 (qualifier.owner.name)。在 SQL Server 中,該列表示數(shù)據(jù)庫名。在某些產(chǎn)品中,該列表示表所在數(shù)據(jù)庫環(huán)境的服務(wù)器名。
[@column_name =] 'column'
是只獲得一列目錄信息時所使用的單個列。column 的數(shù)據(jù)類型為 nvarchar(384),默認值為 NULL。如果沒有指定 column,將返回所有列。在 SQL Server 中,column 表示在 syscolumns 表中列出的列名。使用基礎(chǔ) DBMS 的通配符匹配模式,column 可以包含通配符。若要獲得最佳的互操作性,網(wǎng)關(guān)客戶端應假定只有 SQL-92 標準模式匹配(% 和 _ 通配符)。
sp_column_privileges 與 ODBC 中的 SQLColumnPrivileges 等價。返回的結(jié)果按 TABLE_QUALIFIER、TABLE_OWNER、TABLE_NAME、COLUMN_NAME 和 PRIVILEGE排序。
列名 | 數(shù)據(jù)類型 | 描述 |
---|---|---|
TABLE_QUALIFIER | sysname | 表限定符名稱。該字段可以為 NULL。 |
TABLE_OWNER | sysname | 表所有者名稱。該字段始終返回值。 |
TABLE_NAME | sysname | 表名。該字段始終返回值。 |
COLUMN_NAME | sysname | 所返回的 TABLE_NAME 每列的列名。該字段始終返回值。 |
GRANTOR | sysname | 將 COLUMN_NAME 上的權(quán)限授予所列 GRANTEE 的數(shù)據(jù)庫用戶名。在 SQL Server 中,該列總是和 TABLE_OWNER 相同。該字段始終返回值。 GRANTOR 列可以是數(shù)據(jù)庫所有者 (TABLE_OWNER) 或數(shù)據(jù)庫所有者通過 GRANT 語句中的 WITH GRANT OPTION 子句對其授予權(quán)限的用戶。 |
GRANTEE | sysname | 由所列 GRANTOR 授予 COLUMN_NAME 上的權(quán)限的數(shù)據(jù)庫用戶名。在 SQL Server 中,該列總是包括來自 sysusers 表的數(shù)據(jù)庫用戶。該字段始終返回值。 |
PRIVILEGE | varchar(32) | 可用列權(quán)限中的一個。列權(quán)限可以是下列值中的一個(或定義執(zhí)行時數(shù)據(jù)源支持的其它值): SELECT = GRANTEE 可以檢索列的數(shù)據(jù)。 INSERT = GRANTEE 向表插入新行時可以為該列提供數(shù)據(jù)。 UPDATE = GRANTEE 可以修改列中的現(xiàn)有數(shù)據(jù)。 REFERENCES = GRANTEE 可以引用主鍵/外鍵關(guān)系中外表中的列。主鍵/外鍵關(guān)系使用表約束定義。 |
IS_GRANTABLE | varchar(3) | 指出是否允許 GRANTEE 為其他用戶授予權(quán)限,經(jīng)常稱為"授予再授予 (grant with grant)"??梢允?YES、NO 或 NULL。未知的(或 NULL)值引用不能使用"授予再授予 (grant with grant)"的數(shù)據(jù)源。 |
對于 SQL Server,可以用 GRANT 語句授予權(quán)限,用 REVOKE 語句除去權(quán)限。
執(zhí)行許可權(quán)限默認授予 public 角色。
下面的示例返回表的列特權(quán)信息。
EXEC sp_column_privileges Employees
相關(guān)文章