0

我正在尝试创建一个角色来授予少数用户创建和更改视图、过程和表的权限。我不希望这些用户能够从/更新/删除/更改等数据库中的任何表中进行选择,有些表是我们想要控制的——但他们应该对他们创建的任何对象拥有完全权限。

我已经授予用户创建视图等的权限,并且效果很好,但是他们不能从他们随后创建的视图中进行选择。是否有可能做到这一点?

-- 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。

我不明白为什么所有权没有传递给对象的创建者。知道是什么原因造成的吗?

4

3 回答 3

1

听起来您首先用来拒绝它们的方法是覆盖默认设置。您能否发布有关用户拥有哪些权限的更多信息?

无法评论:(

于 2013-07-16T21:09:47.613 回答
0

我会发表评论但缺乏特权;你看过MySQL 表的权限吗?这是一个相当不错的系统。

于 2013-07-16T14:54:20.973 回答
0

您需要将架构上的 SELECT 授予用户/组:

GRANT SELECT ON SCHEMA::dbo TO User/Group;
于 2015-10-29T16:12:59.283 回答