我正在尝试使用自动身份范围管理 http://msdn.microsoft.com/en-us/library/ms152543.aspx#sectionToggle1。但是,确保我的用户可以在具有标识列的表中插入记录的唯一方法是使它们db_owner
。我错过了什么吗?
有关完整背景,请参阅我之前的问题: 在具有自动标识范围管理的合并复制中允许非 db_owner INSERT 权限 https://stackoverflow.com/questions/6075074/allow-non-db-owner-insert-permissions-in-merge-replication-with-auto-identity-ran
显然它们是相互排斥的。
这是摘录自微软员工博客 http://blogs.msdn.com/b/repltalk/archive/2010/03/03/all-about-identity-range-management.aspx (请注意,这不是“官方”文档,但它已经尽可能接近了):
常见的身份范围问题
1) 向发布者或订阅表进行插入的帐户不是 db_owner。
SQL 2005/8 订阅者具有合并复制触发器,如果进行插入的帐户是 db_owner 角色的成员,则可以将耗尽的主范围调整到辅助辅助范围。如果连接的帐户是 db_owner 角色的成员,发布者还可以刷新范围(创建新的主要和次要范围)。但是,如果向表中进行插入的帐户不属于 db_owner 角色,则触发器无法进行此类调整。在这种情况下,需要执行合并代理以便在范围耗尽之前进行这些调整,以避免新插入失败,或者 db_owner 的成员必须手动运行系统存储过程 sp_adjustpublisheridentityrange (Transact-SQL)。
什么!?!?!谁在编写数据库应用程序,其中唯一插入记录的用户是 db_owners?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)