Saturday, March 7, 2009

Insufficient for performing this operation. (rsAccessDenied)

The permissions granted to user 'DOMAIN\ASPNET' are insufficient for performing this operation. (rsAccessDenied)

1. ถ้าแก้ไขให้รันบนเครื่องตัวเองได้โดยแก้ web.config ของ project ที่เรียก report server

<authentication mode="Windows"/> <!-- อันนี้น่าจะมีอยู่แล้ว -->
<identity impersonate="true" />
<!-- อันนี้น่าจะยังไม่มีอยู่ให้เราเพิ่มซะ -->

# ซึ่งตั้งค่าประมาณนี้ impersonate เป็น true คือแสร้างทำตัวเป็น user บนเครื่องนั้นเอง อาไรประมาณนั้น

# แต่ role ของรายงานนี้ยังไม่ต้องเพิ่ม user อื่นให้เค้านะ

The permissions granted to user 'CLIENDOMAIN\IUSR_CLIENDOMAIN' are insufficient for performing this operation. (rsAccessDenied)

# รู้สึกว่าวิธีนี้จะไม่เวิร์ค ถ้าเรียกรายงานจาก client อื่นๆ เค้า error aspnet เหมือนเดิมหว่า กำจริงๆ รันได้แต่เครื่องตัวเอง

2. วิธีที่ 2 ถ้าเราได้ทำตามข้อ 1 ให้เราแก้ให้เหมือนเดิมซะ

# web.config ให้เราไปลบบรรทัดนี้ออกแล้วบันทึกซะ ถ้ามีนะ แต่ถ้าไม่มีก็ไม่ต้องทำอาไรเค้าอ่ะ

<identity impersonate="true" />

# แล้วลองเพิ่ม role ให้ตัว report ที่เรียกโดยโปรเจค โดยเพิ่ม aspnet เข้าไปอีก 1 user ปกติที่มีอยู่แล้วคือ administrator โดยเพิ่มผ่าน report manager

# http://localhost/reports => click Report name => click Properties => Security



# แต่ก็ขึ้นข้อผิดพลาดแบบนี้อ่ะ login ไม่ได้อ่ะ

* An error has occurred during report processing.
Cannot create a connection to data source 'db_name'.
+ Cannot open database "db_name" requested by the login. The login failed. Login failed for user 'DOMAIN\ASPNET'.

# ทั้งเครื่องตัวเอง และ client อื่นด้วยหว่า error หมดเลยทีนี้ อืมประเด็นน่าจะอยุ่ที่ aspnet แหละ user นี้ล่ะมีปัญหากับ report

# หรือว่าน่าจะมีปัญหาตอนสร้าง report ด้วยป่าวหว่า เพราะเราสร้างโดยใช้ windows authen หว่าน่าจะเกียวกันมั้ยเนี๋ย


# ต้องลองสร้างใหม่ก่อน หรือ ลองแก้ login database ของ report ลองใช้แบบ sql authen นั้นดูก่อน

# ได้ด้วยแหละ รันได้ทั้งเครื่องตัวเองและ client ทุกเครื่องเลยเย่ (อย่าเพิ่มชื่อ aspnet เข้า role ของ report ด้วย เลือกแค่ Content Manager น่าจะพอ)

# น่าจะเข้าไปแก้ที่ report manager ได้มั้ยน้า น่าจะได้เหมือนกัน

Solved
  1. สร้าง report ให้ใช้ authen แบบ sql user ไม่ใช้ windows user
  2. เพิ่ม aspnet เข้า role ของ report นั้นๆ เลือกแค่ content manager น่าจะพอ
  3. ถ้าเรามีรายงานอยู่แล้วแต่ ใช้ windows mode สำหรับ authen ให้เราเปลี่ยนเป็น sql mode authen น่าจะแก้ได้ แต่ ไม่รู้ต้องแก้ไงหว่า ^^'
Enviroment: XP, SQL2005 include ReportService, Dotnet 2005, IIS 5.1

References

No comments:

Post a Comment