【发布时间】:2013-07-14 19:37:13
【问题描述】:
我正在尝试创建一个角色来授予少数用户创建和更改视图、过程和表的权限。 我不希望这些用户能够从/更新/删除/更改等中进行选择。any 数据库中的表,我们想要控制一些表 - 但他们应该具有完全权限在他们创建的任何对象上。
我已授予用户创建视图等的权限,并且效果很好,但他们无法从随后创建的视图中进行选择。可以这样做吗?
-- 2013 年 7 月 25 日添加
示例: 示例用户 Mike 对少数表授予了特定权限。全部授予,不否认。 除了“连接”之外,没有其他数据库级别的权限 Plus 是公众成员(未更改 - 不否认),以及我们设置的其他 3 个角色
角色:Standard_Reader 对多个表的特定选择权限。全部授予,不否认。 没有其他数据库级权限
角色:SensitiveDemographicsReader 敏感表的特定选择权限。全部授予,不否认
角色:分析师 没有特定的担保物 数据库级权限: 创建函数 创建程序 创建表 创建视图
此用户可以创建表或视图,但一旦创建,便无法从中进行选择。
是否可以设置 SQL 服务器,以便每当用户创建表或视图时,他们就有权从中进行选择(假设他们对视图中的基础表具有权限)
-- 编辑
经过一些调查,很明显,出于某种原因,在我们的数据库中,对象的所有权并未归属于其创建者。
使用此代码找到
select so.name, su.name, so.crdate from sysobjects so join sysusers su on so.uid = su.uid
order by so.crdate
所有所有者,除了几个例外都是 DBO。
我不明白为什么所有权没有传递给对象的创建者。知道是什么原因造成的吗?
【问题讨论】:
标签: sql sql-server-2008 security permissions roles