Sql server 拒绝对dbo架构的创建权限

Sql server 拒绝对dbo架构的创建权限,sql-server,tsql,sql-server-2012,Sql Server,Tsql,Sql Server 2012,我们有一个SQL Server 2012数据库,其中混合了“标准”和“管理”用户 标准用户有自己的模式。管理员用户可以在dbo模式中创建对象 我想阻止标准用户在dbo模式下创建对象,并强制他们在自己的模式下创建对象。但是,标准用户还需要访问dbo模式中已有的对象,但不应更改或删除它们 有没有一种简单的方法可以做到这一点: DENY CREATE TABLE on SCHEMA::dbo DENY CREATE VIEW on SCHEMA::dbo DENY CREATE PROC

我们有一个SQL Server 2012数据库,其中混合了“标准”和“管理”用户

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

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

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

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

谢谢你给我指出了正确的方向。

我刚刚抽查了
创建表
创建过程
,但我怀疑所有对象的行为都是这样的:

需要在数据库中创建表权限和更改权限 在创建表的架构上

(我的重点)。因此,您应该能够在SCHEMA::[dbo]上向[some principal]插入一个简单的
DENY ALTER,以防止它们创建或删除对象

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