【发布时间】:2010-11-14 20:54:12
【问题描述】:
在过去的 7 个月里,我一直在使用 Visual Studio 2008 和 SQL Server 2008 开发 C# ASP.NET。
今天,我正在运行之前运行的应用程序的一部分,但出现以下错误:
对象“地址”、数据库“CNET_85731”、模式“dbo”的 SELECT 权限被拒绝。
我浏览了我的代码,发现这个错误是由以下用户控件引起的:
protected void sdsAddressesList_Selected(object sender, SqlDataSourceStatusEventArgs e)
{
if (e.AffectedRows == 0)
{
ddlAddresses.Items.Insert((0), new ListItem("No Billing Addresses", "0"));
}
}
SQLDataSource 定义如下:
<asp:SqlDataSource ID="sdsAddressesList" runat="server" OnSelecting="sdsAddressesList_Selecting" OnSelected="sdsAddressesList_Selected"
SelectCommand="SELECT [AddressId], [ZipPostalCode], ZipPostalCode + ' -- ' + Address1 AS CombinedAddress FROM [Address] WHERE ([CustomerID] = @CustomerID AND [IsBillingAddress] = @IsBillingAddress) ORDER BY [ZipPostalCode]"
ConnectionString="<%$ ConnectionStrings:eCoSysConnection %>">
<SelectParameters>
<asp:Parameter Name="CustomerID" Type="Int32" />
<asp:Parameter Name="IsBillingAddress" Type="Boolean" />
</SelectParameters>
</asp:SqlDataSource>
基本上,控件的作用是从 [Address] 表中检索登录用户的地址列表,然后填充下拉列表 ddlAddresses。
Address 表与数据库中的其余表具有所有相同的权限。我有大约 60 个表和大约 200 个存储过程,它们都在愉快地进行 SELECT 等操作。没问题。除了这一个问题。到底是怎么回事?我没有对数据库或表权限进行任何更改。
谁能帮帮我。
问候
沃尔特
【问题讨论】:
-
连接字符串是否指向正确的数据库(具有适当权限设置的数据库)?
-
是的。 web.config 中的连接字符串如下:
I始终使用相同的连接字符串访问数据库。 -
与 sql server 绑定的 Windows 登录有什么变化吗?
-
如果您以 SA 和/或该用户的身份通过管理工作室的某些用户登录 SQL 框并手动运行选择查询,会发生什么?
-
并不是说我知道 shahkalpesh。所有其他数据库访问工作正常。
标签: c# sql-server-2008 asp.net-3.5