我正在尝试创建一个角色来授予少数用户创建和更改视图、过程和表的权限。我不希望这些用户能够从/更新/删除/更改等数据库中的任何表中进行选择,有些表是我们想要控制的——但他们应该对他们创建的任何对象拥有完全权限。
我已经授予用户创建视图等的权限,并且效果很好,但是他们不能从他们随后创建的视图中进行选择。是否有可能做到这一点?
-- 2013 年 7 月 25 日添加
示例:示例用户 Mike 对少数表授予了特定权限。全部授予,不否认。除了“连接”之外没有其他数据库级别权限加上是公共成员(未更改 - 不拒绝),加上我们设置的其他 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。
我不明白为什么所有权没有传递给对象的创建者。知道是什么原因造成的吗?