对象'''' ' dbo'上的SELECT权限被拒绝。使用DBML

时间:2015-08-31 13:31:12

标签: c# asp.net sql-server dbml

我的网站工作正常,直到今天早上。现在我得到了一个

  

'对象'''''''   架构' dbo'。

错误。问题是,该方法是一些DBML代码的一部分,我甚至可以找到连接字符串。

    [global::System.Data.Linq.Mapping.FunctionAttribute(Name="RAW.GetCustomers")]
    public ISingleResult<GetCustomersResult> GetCustomers()
    {
        IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())));
        return ((ISingleResult<GetCustomersResult>)(result.ReturnValue));
    }

这是导致错误的生成函数调用。 我必须假设数据库中有一些权限更改,或者登录不再有效,但我无法在此代码中找到任何连接信息。 web.config中也没有任何内容。 我在哪里可以找到所有这些连接信息?我所拥有的只是一个图表,其中包含一系列被调用的函数。它导致错误的GetCustomers()函数(见上文)。

这是web.Config。它显示了RawParts连接sting,但没有显示导致问题的数据库(dynamic是它的名字)

    <?xml version="1.0" encoding="UTF-8"?>

<configuration>
  <connectionStrings>
    <add name="MiscReportTablesConnectionString" connectionString="Data Source=pmfcgrb12;Initial Catalog=MiscReportTables;Persist Security Info=True;User ID=USERNAME;Password=PASSWORD"
      providerName="System.Data.SqlClient" />
  </connectionStrings>

  <system.web>
    <compilation debug="true" targetFramework="4.0" />

    <membership>
      <providers>
        <clear/>
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
      </providers>
    </membership>

    <profile>
      <providers>
        <clear/>
        <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
      </providers>
    </profile>

    <roleManager enabled="false">
      <providers>
        <clear/>
        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
        <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
      </providers>
    </roleManager>

    <customErrors mode="Off"/>

  </system.web>

  <system.webServer>
     <modules runAllManagedModulesForAllRequests="true" />
        <defaultDocument>
            <files>
                <clear/>
                <add value="default.aspx"/>
            </files>
        </defaultDocument>
  </system.webServer>
</configuration>

1 个答案:

答案 0 :(得分:0)

您似乎正在为函数使用RAW模式。确保您的登录用户有权访问该架构,并检查该函数的内容,以查看该函数是否正在使用dbo架构下的任何对象,而该用户无权使用这些对象。

尝试以用户身份在Management Studio中以用户身份运行该功能,以隔离用户权限问题与连接字符串应用程序问题。