SQL Server не является моей сильной стороной, и я начинаю заблудиться, проходя мимо базовой таблицы создания, выбора из таблицы и т. Д.
Я пытаюсь настроить сценарий синхронизации базы данных с Microsoft SQLCompact 3.5.Синхронизация базы данных через Прокси и базу данных SQL 2008 R2.Он синхронизируется через Microsoft Sync Framework 2.1.
У меня все настроено и нормально работает через прокси, когда учетная запись пользователя является владельцем базы данных db_owner.
Конечно, теперь это нужно заблокировать - поэтому я пытался ограничить разрешения до минимума, необходимого для синхронизации.
Согласно статьям Microsoft, мне нужно сделатьследующий ...
Используйте принцип наименьшего разрешения.Не предоставляйте больше разрешений, чем требуется для выполнения конкретной задачи.Например, не предоставляйте разрешения INSERT для таблиц базы данных сервера, которые участвуют в синхронизации только для загрузки.Для операций синхронизации требуются следующие разрешения:
Разрешения EXECUTE для всех хранимых процедур, которые Sync Framework использует для чтения и записи в таблицы метаданных и базовые таблицы.
SELECT, INSERT, UPDATE,и УДАЛИТЬ разрешения для таблиц метаданных и любых базовых таблиц, которые будут обновлены во время сеанса синхронизации.
При подготовке баз данных SQL Server, использующих SqlSyncProvider, учитывайте следующие требования к разрешениям для обеспечения:
Разрешения CREATE TABLE для включения создания таблиц метаданных: scope_info и scope_config, а также таблиц отслеживания, которые создаются для каждой базовой таблицы.
ALTER TABLE для добавления триггеров в базовые таблицы.
Разрешения CREATE PROCEDURE для создания процедур, необходимых для Sync Framework.
Разрешения SELECT и INSERT для таблиц scope_info и scope_config.
Разрешения SELECT для базовых таблиц.
Я позволил мастерам в Visual Studio 2010 создать для меня базу данных Sync и прокси.
Таким образом, я не могу найти таблицы scope_info и scope_config в базах данных SQL Server, а также не могучтобы найти таблицы метаданных, поэтому не можете устанавливать разрешения для этих таблиц.Кроме того - где я могу найти хранимые процедуры, которые пытается использовать среда синхронизации - я искал, но не могу их найти.
Где я могу их найти и как мне настроить соответствующие разрешения?
Я предоставил разрешения на чтение и запись данных, вставку, обновление, удаление и выбор, а также выполнение на базе данных SQL Server, но синхронизация не удалась.Я также предоставил пользователю полномочия «Создать таблицу», «Создать процедуру» и «ALTER» в базе данных для пользователя, но он все равно не работает.
Если я включаю для пользователя роль db_owner - это работает.* Я получаю сообщение об ошибке:
Невозможно инициализировать клиентскую базу данных, потому что схема для таблицы 'tblApplications, tblApplicationConfiguration, tblApplicationInstallProperties, tblApplicationPreRequisites, tblApplicationTypes, tblComputerTribTrivItribTIvItrivTIWDTIWRI-TIBESTVESTVESTVESTVESTVESTSP-TCRS, tblFunctions, tblLocationApps, tblLocationComputers, tblLocationIPAddress, tblLocations, tblLocationUsers, tblPermissions, tblRegionLocations, tblRegions, tblRegisteredModules, tblRequestFormats, tblRequestStatus, tblRequestTypes, tblRoles, tblRoleUsers, tblSecurity, tblUsers, tblVehicle, tblVehicleLocationMap, tblVehicleMake, tblRequestProcessingStatus, tblDriveStatus, не может быть tblVideoViewTypes'извлекается методом GetSchema () DbServerSyncProvider.Убедитесь, что вы можете установить соединение с клиентской базой данных и что свойство SelectIncrementalInsertsCommand или свойство SelectIncrementalUpdatesCommand SyncAdapter указано правильно.
Я не могу использовать роль db_owner после ее освобождения.