经典的asp记录集权限问题

时间:2011-06-22 06:38:14

标签: sql-server asp-classic database-permissions

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

更新:我在接下来的错误恢复时关闭,我收到的错误是选择权限被拒绝。我如何使用以下代码给自己的权限?

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

1 个答案:

答案 0 :(得分:1)

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

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

顺便说一句,由于明显的安全原因,您无法通过代码“授予自己权限” - 存在权限以防止代码首先执行某些操作。

相关问题