【问题标题】:DENY CREATE permissions on dbo schemaDENY CREATE 对 dbo 架构的权限
【发布时间】:2015-01-14 14:20:18
【问题描述】:

我们有一个 SQL Server 2012 数据库,其中包含“标准”和“管理员”用户。

标准用户有自己的架构。管理员用户可以在 dbo 架构中创建对象。

我想阻止标准用户在 dbo 架构下创建对象 - 并强制他们在自己的架构下创建对象。但是,标准用户还需要访问 dbo 模式中已有的对象 - 但不应更改或删除它们。

有没有一种简单的方法可以做到这一点:

 DENY CREATE TABLE on SCHEMA::dbo  
 DENY CREATE VIEW on SCHEMA::dbo  
 DENY CREATE PROCEDURE on SCHEMA::dbo  

感谢您为我指明正确的方向。

【问题讨论】:

    标签: sql-server tsql sql-server-2012


    【解决方案1】:

    我刚刚对CREATE TABLECREATE PROCEDURE 进行了抽查,但我怀疑所有对象的行为都是这样的:

    需要数据库中的 CREATE TABLE 权限和 ALTER 权限 在架构上在其中创建表。

    (强调我的)。因此,您应该可以只输入一个简单的DENY ALTER ON SCHEMA::[dbo] to [some principal here] 来防止它们创建或删除对象。

    更改现有对象比较棘手,因为您不需要拥有拥有架构的任何权限即可更改对象。但是,除非他们对(例如)过程具有某种更改权限,否则默认情况下他们将无法执行此操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-01
      • 2021-11-22
      • 1970-01-01
      相关资源
      最近更新 更多