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

來源:互聯網
上載者:User

標籤:blog   http   io   ar   os   使用   sp   for   資料   

原文: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伺服器。

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

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

2、  彈出的IE視窗中,Group or user name(組或使用者名稱) 文字框輸入IUSR_** (匿名使用者)。

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

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



第二步:除了要設定Reporting Services的IIS網站能允許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改為“匿名訪問”。

 

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.