В доступе SELECT было отказано для объекта «Примечания», базы данных «Sticky», схемы «dbo» - PullRequest
4 голосов
/ 10 августа 2010

Появляется здесь:

            SyncAdapter notesSyncAdapter = notesBuilder.ToSyncAdapter();
        ((SqlParameter)notesSyncAdapter.SelectIncrementalInsertsCommand.Parameters["@sync_last_received_anchor"]).DbType = System.Data.DbType.Binary;
        ((SqlParameter)notesSyncAdapter.SelectIncrementalInsertsCommand.Parameters["@sync_new_received_anchor"]).DbType = System.Data.DbType.Binary;

Пользователь имеет все разрешения как для таблицы, так и для схемы и базы данных. Любая идея, что это может все еще бросить это исключение?

подробнее: SQLiteConnectionStringBuilder builder = new SQLiteConnectionStringBuilder ();

builder ["Источник данных"] = "achernar"; builder ["ID пользователя"] = "sbbf974"; builder ["Password"] = "что угодно"; builder ["Integrated Security"] = false; builder ["Initial Catalog"] = "sticky";

Ответы [ 4 ]

2 голосов
/ 11 августа 2010

Проблема была с пользователем, как и предположил Абэ.Пользователь был dbo, что означает, что, хотя он должен был иметь все разрешения, он этого не сделал.Поэтому я создал еще одну учетную запись, которой я назначил следующие роли базы данных: public, db_datareader, db_datawriter.Это работает сейчас.

1 голос
/ 10 августа 2010

Вы абсолютно уверены, что ваш код и база данных синхронизированы правильно? Если вы можете, я бы порекомендовал одному из ваших коллег проверить следующее. Иногда свежий взгляд может заметить то, что вы пропустили ...

  • Вы ссылаетесь на правильную БД в своем коде (в отличие от разработка БД)
  • Вы подключаетесь как пользователь, которого вы думаете в своем коде
  • Имеет ли этот пользователь разрешения в БД, к которой вы подключаетесь

Я знаю, что это, вероятно, звучит очевидно, но я бы сказал, что стоит проверить кого-то еще. Я знаю, что я был пойман этим раньше ...

0 голосов
/ 21 октября 2018

Попробуйте удалить

Trusted_Connection=True;

или

Integrated Security=True;

из строки подключения вашего кода C #.

0 голосов
/ 10 августа 2010

Кто такой «пользователь»? Я скорее доверяю SQL Server, который четко заявляет, что текущее соединение не имеет разрешения. Инфраструктура синхронизации проходит несколько уровней, через IIS и ISAPI, пока не достигнет базы данных, так что вы лучше определитесь, какие именно учетные данные используются. Есть ли олицетворение на уровне IIS? Ограниченная делегация? Идентифицирует ли клиент инфраструктуры синхронизации с IIS с помощью чего (NTLM / Digest / Basic / Nothing)?

...