微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

需要学习如何在SQL Server数据库上设置适当的权限以允许通过Sync Framework 2.1进行同步

如何解决需要学习如何在SQL Server数据库上设置适当的权限以允许通过Sync Framework 2.1进行同步

在Sync Framework中,有两种类型的数据库提供程序,即本地数据库缓存项目项使用的脱机提供程序(sqlCeClientSyncProvider / DbServerSyncProvider)和协作/对等提供程序(sqlSyncProvider / sqlCeSyncProvider)。

脱机提供程序不会使用scope_xxx表,因为您不会找到它。

假设通过向导配置同步时使用了认的sql Server更改跟踪,请尝试将VIEW CHANGE TRACKING权限授予用于连接数据库的帐户。

解决方法

SQL Server不是我的强项,当我经过基本的“创建表”,“从表中选择”等内容时,我开始迷路。

我正在尝试使用通过代理与SQL 2008 R2数据库同步的Microsoft SQLCompact
3.5数据库来设置数据库同步方案。它正在通过Microsoft Sync Framework 2.1进行同步。

当用户帐户是数据库的db_owner时,我已通过代理进行了所有设置并正常工作。

当然,现在需要对此进行锁定-因此我一直试图将权限限制为同步所需的最低限度。

根据Microsoft的文章,我需要执行以下操作…

使用最小权限原则。授予的权限不要超过执行特定任务所需的权限。例如,不要为仅下载同步中涉及的服务器数据库表授予INSERT权限。同步操作需要以下权限:

Sync Framework用于读取和写入元数据表和基表的所有存储过程的EXECUTE权限。

对元数据表和将在同步会话期间更新的任何基本表的SELECT,INSERT,UPDATE和DELETE权限。

设置使用SqlSyncProvider的SQL Server数据库时,请注意以下权限要求:

CREATE TABLE权限可启用元数据表的创建:scope_info和scope_config,以及为每个基本表创建的跟踪表。

ALTER TABLE将触发器添加到基表。

CREATE PROCEDURE权限可创建Sync Framework所需的过程。

scope_info和scope_config表的SELECT和INSERT权限。

基本表的SELECT权限。

我允许Visual Studio 2010中的向导为我创建Sync数据库和代理。

因此,我无法在SQL Server数据库中找到scope_info和scope_config表,也无法找到元数据表,因此无法在这些表上设置权限。另外-
我在哪里可以找到同步框架试图使用的存储过程-我已经找到了,但无法找到它们。

我在哪里可以找到这些以及如何设置适当的权限?

我已授予SQL
Server数据库的数据读取器和数据写入器,插入,更新,删除和选择以及执行权限,但同步失败。我还为用户授予了数据库的“创建表”,“创建过程”和“更改”权限,但仍然失败。

如果我为用户启用了db_owner角色-它可以工作。

我收到的错误是:

无法初始化客户端数据库,因为表’tblApplications,tblApplicationConfiguration,tblApplicationInstallProperties,tblApplicationPreRequisites,tblApplicationTypes,tblComputerApps,tblComputers,tblComputerTypes,tblDriveHWSerials,tblDrives,tblDriveTypes,tblFunctions,tblLocationblss,tblLocationbls,tblLocations,
,tblRegions,tblRegisteredModules,tblRequestFormats,tblRequestStatus,tblRequestTypes,tblRoles,tblRoleUsers,tblSecurity,tblUsers,tblVehicle,tblVehicleLocationMap,tblVehicleMake,tblRequestProcessingStatus,tblDriveStatus,tblVideoViewTypedProvider可以通过tblVideoViewTypes方法获取()确保可以建立与客户端数据库的连接,并且正确指定了SyncAdapter的SelectIncrementalInsertsCommand属性或SelectIncrementalUpdatesCommand属性。

db_owner角色发布后,我将无法使用它。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。