打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
常用的系统存储过程应用实例(一) B
1.5.        sp_column_privileges

返回当前环境中单个表的列特权信息。

语法

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) 默认的表的可视性规则。

在 Microsoft?? SQL Server?? 中,如果当前用户拥有的表具有指定名称,则返回该表的列。如果没有指定 table_owner,并且当前用户不拥有指定 table_name 的表,则 sp_column_privileges 搜索数据库所有者拥有的指定 table_name 的表。如果有,则返回该表的列。

[@table_qualifier =]’table_qualifier’

是表限定符的名称。table_qualifier 的数据类型为 sysname,默认值为 NULL。多种 DBMS 产品支持表的三部分命名方式 (qualifier.owner.name)。在 SQL Server 中,该列表示数据库名。在某些产品中,该列表示表所在数据库环境的服务器名。

[@column_name =]’column’

是只获得一列目录信息时所使用的单个列。column 的数据类型为 nvarchar(384),默认值为 NULL。如果没有指定 column,将返回所有列。在 SQL Server 中,column 表示在 syscolumns 表中列出的列名。使用基础 DBMS 的通配符匹配模式,column 可以包含通配符。若要获得最佳的互操作性,网关客户端应假定只有 SQL-92 标准模式匹配(% 和 _ 通配符)。

结果集

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 为其他用户授予权限,经常称为"授予再授予 (grant with grant)"。可以是 YES、NO 或 NULL。未知的(或 NULL)值引用不能使用"授予再授予 (grant with grant)"的数据源。

注释

对于 SQL Server,可以用 GRANT 语句授予权限,用 REVOKE 语句除去权限。

权限

执行许可权限默认授予 public 角色。

实例

显示表test中各列的特权信息:

sp_column_privileges testable

 

test    dbo testtable   id  dbo dbo INSERT  YES

test    dbo testtable   id  dbo dbo REFERENCES  YES

test    dbo testtable   id  dbo dbo SELECT  YES

test    dbo testtable   id  dbo dbo UPDATE  YES

test    dbo testtable   name    dbo dbo INSERT  YES

test    dbo testtable   name    dbo dbo REFERENCES  YES

test    dbo testtable   name    dbo dbo SELECT  YES

test    dbo testtable   name    dbo dbo UPDATE  YES
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
《SQLServer数据库应用基础教程》第三章数据表的建立
SQL SERVER将数据移到另一个文件组之后清空文件组并删除文件组
使用TableDiff实用工具解决事务复制中的问题
通过SQL Server操作MySQL的步骤和方法
视图的架构刷新和绑定
SQL数据库常用命令
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服