5

假设存在这样的查询,我将非常感谢您的帮助。

我正在尝试开发一个权限脚本,该脚本将授予对数据库中用户表和视图的“选择”和“引用”权限。我希望在这样一个集合中的每个元素上执行“授予”命令,这样在将新表和视图添加到数据库时,可以更轻松地保持权限最新。

4

3 回答 3

6
select * from information_schema.tables
WHERE OBJECTPROPERTY(OBJECT_ID(table_name),'IsMSShipped') =0 

将排除 dt_properties 和系统表

添加

where table_type = 'view' 

如果你只想看风景

于 2008-08-28T20:11:35.087 回答
2
SELECT
    *
FROM
    sysobjects
WHERE
    xtype = 'V' AND
    type = 'V' AND
    category = 0

以下是xtype的可能值列表:

  • C = CHECK 约束
  • D = 默认或 DEFAULT 约束
  • F = FOREIGN KEY 约束
  • L = 对数
  • P = 存储过程
  • PK = PRIMARY KEY 约束(类型为 K)
  • RF = 复制过滤器存储过程
  • S = 系统表
  • TR = 触发器
  • U = 用户表
  • UQ = UNIQUE 约束(类型为 K)
  • V = 查看
  • X = 扩展存储过程

以下是type的可能值:

  • C = CHECK 约束
  • D = 默认或 DEFAULT 约束
  • F = FOREIGN KEY 约束
  • FN = 标量函数
  • IF = 内联表函数
  • K = PRIMARY KEY 或 UNIQUE 约束
  • L = 对数
  • P = 存储过程
  • R = 规则
  • RF = 复制过滤器存储过程
  • S = 系统表
  • TF = 表函数
  • TR = 触发器
  • U = 用户表
  • V = 查看
  • X = 扩展存储过程

最后,类别字段看起来像是基于不同类型的对象进行分组。在分析返回结果集后,系统视图的类别= 2,而所有用户视图的类别= 0。希望这会有所帮助。

有关详细信息,请访问http://msdn.microsoft.com/en-us/library/aa260447(SQL.80).aspx

于 2008-08-28T20:24:08.973 回答
0
select * from information_schema.tables
where table_type = 'view'
于 2008-08-28T20:06:37.300 回答