0

我正在尝试使用以下 sql 字符串返回特定列的值,如果我将其更改为sql = "select * from a_page"objRS("P_description")返回值,但由于某种原因,使用以下代码时我的页面将无法加载。

更新:我关闭了 error resume next 并且我收到的错误是select permission denied。我将如何使用下面的代码授予自己权限?

SQL = "select P_Name as P_Name, P_Description as P_Description from L_PagePermission inner join A_Permission on p_permissionID = pp_PermissionID inner join A_Page on P_PageID = PP_PageID where P_PageID = 84 order by p_Name"

Page_ID = 84

connectionstring = obj_ADO.getconnectionstring

Set objCon = CreateObject("ADODB.Connection")
Set objRS = CreateObject("ADODB.Recordset")
objCon.Open connectionstring

SQL = "select P_Name as P_Name, P_Description as P_Description from L_PagePermission inner join A_Permission on p_permissionID = pp_PermissionID inner join A_Page on P_PageID = PP_PageID where P_PageID = 84 order by p_Name"

objRS.open SQL, objCon

objRS.MoveFirst
while not objRS.EOF
    response.Write objRS("P_Name")
    objRS.MoveNext
wend

objRS.close
objCon.close
4

1 回答 1

1

您得到的错误加上您提到的正在工作的代码意味着一件事:在任一L_PagePermission表或A_Permission(或两者)上,连接字符串中传递的用户没有读取权限。

要解决这个问题,您必须在连接字符串中传递“更强”的用户,或者通过 SQL Management Studio 之类的工具向用户授予对这些表的读取权限。

顺便说一句,由于明显的安全原因,您不能通过代码“授予自己权限” - 权限的存在是为了防止代码首先做某些事情。

于 2011-06-23T11:12:34.637 回答