回答

收藏

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

技术问答 技术问答 394 人阅读 | 0 人回复 | 2023-09-11

SQL Server不是我的强项,当我经过基本的“创建表”,“从表中选择”等内容时,我开始迷路。
+ K( Q1 `! o/ k  X6 C我正在尝试使用通过代理与SQL 2008 R2数据库同步的Microsoft SQLCompact
) A1 r: S' t$ ~. F4 P$ N& M3.5数据库来设置数据库同步方案。它正在通过Microsoft Sync Framework 2.1进行同步。9 V7 D/ ^) `* F: b
当用户帐户是数据库的db_owner时,我已通过代理进行了所有设置并正常工作。
- l4 E: _& G/ q, Q$ A( z. P: |! y当然,现在需要对此进行锁定-因此我一直试图将权限限制为同步所需的最低限度。% F$ d( Y8 ]7 {5 @" J
根据Microsoft的文章,我需要执行以下操作…
9 n$ [* L6 C+ \! A: N+ b: t. Q4 y7 l6 X! F8 S
使用最小权限原则。授予的权限不要超过执行特定任务所需的权限。例如,不要为仅下载同步中涉及的服务器数据库表授予INSERT权限。同步操作需要以下权限:% ~& I  n3 n, `: z7 E- h
9 A2 D+ f' h+ k, @/ o
. R$ E% R/ w2 A
Sync Framework用于读取和写入元数据表和基表的所有存储过程的EXECUTE权限。
5 w1 i$ S1 y, x5 N: A. E对元数据表和将在同步会话期间更新的任何基本表的SELECT,INSERT,UPDATE和DELETE权限。. w9 c2 p0 q) N  n8 E

9 p0 k8 z; J8 C* I# C! u$ p; e设置使用SqlSyncProvider的SQL Server数据库时,请注意以下权限要求:
; }" [5 J- r$ v" i) [0 G+ E1 W, V" B4 k; o. F7 v) d
; T, d- W# c0 f
CREATE TABLE权限可启用元数据表的创建:scope_info和scope_config,以及为每个基本表创建的跟踪表。0 M( ~4 A9 o% ?( n6 @' K- s+ [
ALTER TABLE将触发器添加到基表。
, ~4 {( I$ B: a. h9 O5 p; ]& ?CREATE PROCEDURE权限可创建Sync Framework所需的过程。
# s0 m  u8 R3 w+ x: Yscope_info和scope_config表的SELECT和INSERT权限。
+ @! e6 F6 @. h1 P* `# O2 J; Y/ _基本表的SELECT权限。
. W; c1 @2 Y$ k6 I
6 o! l/ {( D1 D( O. a7 Q
7 ~# ^9 T, l7 v
我允许Visual Studio 2010中的向导为我创建Sync数据库和代理。5 b5 B; L6 K% H+ F! H1 B
因此,我无法在SQL Server数据库中找到scope_info和scope_config表,也无法找到元数据表,因此无法在这些表上设置权限。另外-: j2 ?" i0 Z. k# Q% E) K9 ^
我在哪里可以找到同步框架试图使用的存储过程-我已经找到了,但无法找到它们。
. C2 V' |5 d) s3 A4 H  r我在哪里可以找到这些以及如何设置适当的权限?: F1 T8 O% X. J; S$ v8 ?
我已授予SQL
7 G$ g' U6 [: \0 w6 CServer数据库的数据读取器和数据写入器,插入,更新,删除和选择以及执行权限,但同步失败。我还为用户授予了数据库的“创建表”,“创建过程”和“更改”权限,但仍然失败。
& Q8 S2 a, u  z8 k4 K+ V如果我为用户启用了db_owner角色-它可以工作。
5 ]  S9 u; Z. H8 u7 t我收到的错误是:* K: y3 p" o* b: \$ k- U5 L# V
8 o5 _. Z. B3 a- f2 \. R
无法初始化客户端数据库,因为表’tblApplications,tblApplicationConfiguration,tblApplicationInstallProperties,tblApplicationPreRequisites,tblApplicationTypes,tblComputerApps,tblComputers,tblComputerTypes,tblDriveHWSerials,tblDrives,tblDriveTypes,tblFunctions,tblLocationblss,tblLocationbls,tblLocations,
. }8 n2 m( |$ w5 V0 u; ^,tblRegions,tblRegisteredModules,tblRequestFormats,tblRequestStatus,tblRequestTypes,tblRoles,tblRoleUsers,tblSecurity,tblUsers,tblVehicle,tblVehicleLocationMap,tblVehicleMake,tblRequestProcessingStatus,tblDriveStatus,tblVideoViewTypedProvider可以通过tblVideoViewTypes方法获取()确保可以建立与客户端数据库的连接,并且正确指定了SyncAdapter的SelectIncrementalInsertsCommand属性或SelectIncrementalUpdatesCommand属性。+ C5 B- C! _' w7 l% ~
# V! q4 f" e4 x1 h
db_owner角色发布后,我将无法使用它。
" {1 ]5 h3 _: A6 e8 `               
( |) ?  o3 o! \9 Y  F解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则