用户/角色可以创建表或视图,但不能从中进行选择SQL Server 2008-所有权不传递给创建者



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

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

--增加2013年7月25日

示例:一个示例用户Mike对一些表授予了特定的权限。所有的给予,没有拒绝。除了"连接"之外没有其他数据库级别的权限Plus是公众成员(未更改-没有denys),加上我们已经建立的其他3个角色

角色:Standard_Reader特定对多个表的选择权限。所有的给予,没有拒绝。没有其他数据库级别的权限

角色:SensitiveDemographicsReader特定敏感表的选择权限。所有授予,无拒绝

角色:分析员无特定安全漏洞数据库级别权限:创建函数创建过程创建表格创建视图

这个用户可以创建一个表或视图,但一旦创建,就不能从中进行选择

是否可以设置SQL server,以便每当用户用户创建表或视图时,他们都有权从中进行选择(假设他们有权访问视图中的底层表)

--编辑

经过一些调查,很明显,在我们的数据库中,由于某种原因,对象的所有权并没有侵犯到其创建者。

使用此代码找到

select so.name, su.name, so.crdate from sysobjects so join sysusers su on so.uid = su.uid
order by so.crdate

除了少数例外,所有所有者都是DBO。

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

听起来你最初用来拒绝它们的是覆盖默认设置。你能发布更多关于用户拥有哪些权限的信息吗?

无法评论:(

我会发表评论,但没有特权;你看了MySQL表权限吗?这是一个相当好的系统。

您需要将模式上的SELECT授予用户/组:

GRANT SELECT ON SCHEMA::dbo TO User/Group;

最新更新