良好的安全措施和自动识别范围是否相互排斥?

时间:2011-05-24 16:47:57

标签: sql-server security sql-server-2008 merge-replication

我正在尝试使用Automatic Identity Range Management。但是,确保我的用户可以在具有标识列的表中INSERT记录的唯一方法是使它们db_owner。我错过了什么吗?


有关完整背景,请参阅我之前的问题: Allow non-db_owner INSERT permissions in merge replication with auto identity range mgmt

1 个答案:

答案 0 :(得分:3)

显然他们是相互排斥的。

以下是Microsoft employee blog的摘录(注意,这不是“官方”文档,但它的内容尽可能接近):

  

常见的身份范围问题

     

1)对发布者或订阅表进行插入的帐户不是db_owner。

     

SQL 2005/8订阅者具有合并复制触发器,如果​​创建插入的帐户是db_owner角色的成员,则可以将耗尽的主要范围调整到辅助辅助范围。如果连接的帐户是db_owner角色的成员,则发布者还可以刷新范围(创建新的主要和辅助范围)。但是,如果在表中插入的帐户不属于db_owner角色,则触发器无法进行此类调整。在这种情况下,合并代理需要执行才能在范围耗尽之前进行这些调整,以避免新插入失败,或者db_owner的成员必须手动运行系统存储过程sp_adjustpublisheridentityrange(Transact-SQL)。

什么!?!?!谁在那里编写数据库应用程序,其中唯一插入记录的用户是db_owners?