0

以下のSQL文字列を使用して特定の列の値を返そうとしています。変更するsql = "select * from a_page"objRS("P_description")値が返されますが、何らかの理由で以下のコードを使用するとページが読み込まれません。

更新: エラー レジューム ネクストをオフにしましたが、受け取ったエラーは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

あなたが得るエラーと、あなたが言及したコードが機能していることは、1つのことを意味します.接続文字列で渡されたL_PagePermissionテーブルまたはA_Permission(または両方)で、ユーザーに読み取り権限がありません。

これを解決するには、接続文字列で「より強力な」ユーザーを渡すか、SQL Management Studio などを介してそれらのテーブルに対する読み取りアクセス許可をユーザーに付与する必要があります。

ところで、明らかなセキュリティ上の理由により、コードを介して「自分自身にアクセス許可を付与する」ことはできません。アクセス許可は、コードが特定のことを最初に実行できないようにするために存在します。

于 2011-06-23T11:12:34.637 に答える