SQL Server 2005中設置Reporting Services發佈web報表的匿名訪問

一位朋友提出個問題:集成到SQL Server 2005中的Reporting Services已經將報表模板發佈到IIS服務器,客戶端通過瀏覽器訪問時,默認會彈出Windows集成身份驗證的對話框。如果在IIS配置裏面把允許匿名(IUSR_**)訪問的選項勾選,客戶端再次訪問的時候,會提示IUSR_** 訪問權限不足。

 

    對於這個問題,除了要設置IIS允許匿名訪問外,還需要設置Reporting Services站點的訪問權限和SQL Server中數據源的用戶訪問權限。

    下面我將把需要做的步驟列出來,大家注意前提是使用Visual Studio .NET 2005 已經正確的發佈了Reporting Services製作的報表模板到IIS服務器。

     第一步:在運行IISWeb服務器的本地訪問http://localhost/reports ,這是Reporting Services的管理站點,在Properties(屬性)頁面下添加一個只有Browser(瀏覽者)權限的新Role(角色)。注意新角色的用戶名稱即IUSR_** (匿名用戶)。

1、  點擊“New Role Assignment”(分配新角色)

posted on 2005-08-04 00:21 志堅蒼狼 閱讀(492) 評論(2)  編輯 收藏 收藏至365Key

 

2、  彈出的IE窗口中,Group or user name(組或用戶名) 文本框輸入IUSR_** (匿名用戶)。

3、  勾選Browser(瀏覽者)權限,點OK按鈕確定。

4、  返回到http://localhost/reports 頁面中會新出現添加的Role(角色)。

 



第二步:除了要設置
Reporting ServicesIIS站點能允許IUSR_**(匿名用戶)訪問外,首先需要設置SQL Server 2005 中相應的數據庫能允許IUSR_**(匿名用戶)有隻讀的訪問權限。

 

在運行SQL Servier 2005 的數據庫服務器中,打開Microsoft SQL Server Management Studio。在Object Explorer(對象瀏覽器)中找到Security(安全)目錄下的Logins(登錄),在Logins(登錄)圖標上面單擊右鍵快捷菜單上,選擇New Login…(新登錄),彈出的對話框中設置。

1、  右鍵菜單選擇New Login…(新登錄)。

2、  Windows authentication 中的Login Name(登錄名)文本框,輸入IUSR_**(匿名用戶)。

3、  Defaults(默認)的Database(數據庫)下拉列表框找到Reporting Services製作的報表模板的數據源數據庫。

4、  Select a page(選擇一個頁面)列表中點擊“Database Access”(數據庫訪問)。



第三步:在Data Access頁面中,在Databases accessible by this login(數據庫默認登錄)選擇Reporting Services製作的報表模板的數據源數據庫。

1、  選擇數據庫

2、  OK確定

 

 

 

 

第四步:還是在Microsoft SQL Server Management Studio中,找到Reporting Services的數據源數據庫,在“Security”(安全)下的“Users”(用戶)下,找到剛纔添加的IUSR_**(匿名用戶)。設置他對該數據庫的訪問權限。

1、  IUSR_**(匿名用戶)上右鍵菜單選Properties(屬性)。

2、  彈出的對話框中選擇Permissions(許可)。

3、  點擊“Add Objects…”(增加對象)。

4、  再次彈出的對話框中選擇“Add objects of types”。

 

    還是第四步:彈出的對話框中選Databases(數據庫的)。

1、  Select Object Types(選擇對象類型)對話框選擇“Databases”(數據庫的)。

2、  OK確定。

 

 

  還是第四步:選擇IUSR_**(匿名用戶)對該數據庫許可的操作。

 

1、          Permissions for *** 列表中,找到Select,勾選。(注:你會看到Connect後面是默認勾選的,因爲前面設置的默認登錄到數據庫就是該數據庫)

2、          OK確定。

 

 

  第五步:打開IIS管理器,設置ReportServer虛擬目錄爲匿名訪問。

 

1、  打開IIS管理器,在ReportServer虛擬目錄上單擊郵件選擇“Properties”(屬性)。

2、  在“目錄安全性”頁面,找到“身份驗證和訪問控制”,點擊“編輯...”。

3、  在彈出的“身份驗證方法”對話框,勾選“啓用匿名訪問”。

4、  在“用戶訪問需經過身份驗證”的位置,默認是選中“集成Windows身份驗證”。在這兒可以不用修改它。如果去掉了“集成Windows身份驗證”前面的勾選,則本機(IIS服務器所在機器)對Reporting Services Web站點的訪問也成了匿名訪問。

5、  OK確定。

 

 

  第六步:再通過其他的客戶端機器訪問Reporting Services Web站點,則不再出現Windows用戶登錄窗口。對Reporting Services Web站點的訪問已經更改爲匿名用戶的訪問。

 

  

但是注意,有個問題會同時出現。我們再次訪問http://localhost/reports 時發現,將不能對Reporting Services的權限分配。打開http://localhost/reports 能夠看到的是隻有Contents(內容)一個分類頁面的選項,“Properties”(屬性)選項則不會出現了。這該是Reporting Services產品刻意設計的,因爲所有的用戶都可以匿名訪問Web站點了,權限如果放開了隨便改肯定不行。

 

 

再一想,http://localhost/reports http://localhost/reportserver 這兩個虛擬目錄對應的物理目錄是不同的。一個http://localhost/reports 對應的是C:/Program Files/Microsoft SQL Server/MSSQL.3/Reporting Services/ReportManager ;而http://localhost/reportserver 對應的是C:/Program Files/Microsoft SQL Server/MSSQL.3/Reporting Services/ReportServer。剛纔對/reportserver的匿名訪問權限的修改又怎麼影響到/reports 了呢??

如果再需要修改/reports的“Properties”(屬性),唯一能做的就是重新打開IIS的管理器,去掉/reportserver中的“匿名訪問”選項,再來修改。修改後,再將/reportserver改爲“匿名訪問”。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章