SELECT对象'Notes',数据库'Sticky',schema'dbo'被拒绝

时间:2010-08-10 14:49:06

标签: c# sql sql-server-2008 microsoft-sync-framework

它出现在这里:

            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 [“Data source”] =“achernar”; builder [“User ID”] =“sbbf974”; builder [“密码”] =“不管”; builder [“Integrated Security”] = false; builder [“Initial Catalog”] =“sticky”;

4 个答案:

答案 0 :(得分:2)

问题在于用户,正如Abe所猜测的那样。 用户是dbo,这意味着虽然它应该具有所有权限,但它没有。 所以我所做的就是创建另一个登录,我给了它以下数据库角色:public,db_datareader,db_datawriter。 它现在有效。

答案 1 :(得分:1)

您是否绝对肯定您的代码和数据库已正确同步?如果你能推荐你的同事检查以下内容。有时,一双新鲜的眼睛可以捕捉到你一直在忽视的东西......

  • 您是指代码中的正确数据库(而不是 发展DB)
  • 您是否以代码中的用户身份进行连接
  • 该用户是否在您要连接的数据库中拥有权限

我知道这听起来可能很明显,但我会说让别人仔细检查你是值得的。我知道我之前已经被这个抓住了......

答案 2 :(得分:0)

谁是'用户'?我非常信任SQL Server,它明确指出当前连接没有权限。同步框架通过IIS和ISAPI经过多个层,直到它到达数据库,因此您可以更好地确定使用的凭据。 IIS层是否存在模仿?受限制的代表团?同步框架客户端是否使用什么(NTLM / Digest / Basic / Nothing)对IIS进行身份验证?

答案 3 :(得分:0)

尝试删除

Trusted_Connection=True;

Integrated Security=True;

从您的C#代码的连接字符串中获取。