一個朋友遇到一個SharePoint網站無法開啟的問題, 一開啟就報當前登入使用者無許可權登入網站的錯誤.
- 使用網站管理員登入, 失敗.
- 使用場管理員登入, 失敗.
- 在管理中心裡使用web application policy賦予一個賬戶完全控制許可權, 還是失敗.
- 建立web application, 把content database掛過去, 還是失敗.
- ULS日誌裡的資訊是索要某permission mask, 但是實際是某permission mask.
- 同web application下的其他site collection均能正常訪問.
這個問題真的讓人很崩潰.
最後動用絕招, 使用了一個以前的backup的content database, restore後, 問題解決, 站台復原了訪問.
後來經過細細排查, 發現竟然是這樣的原因:
之前SharePoint伺服器陣列管理員為了對這個網站集進行備份, 在管理中心的Site Collection Quotas and Locks頁面中, 把這個網站集給lock住了. 注意, 在SharePoint SP2之前, 這個是備份前的標準動作. 還可以使用stsadm命令列工具進行這個操作, 順序如下:
1. 查看網站集的lock狀態:
stsadm -o getsitelock -url http://server_name
2. 鎖住網站集:
stsadm -o setsitelock -url http://server_name -lock noaccess
3. 執行備份:
stsadm -o backup -url http://server_name -filename "filename.bak" -overwrite
4. 解除網站集鎖:
stsadm -o setsitelock -url http://server_name -lock none
在SP2之後, 網站集會在備份動作開始之前自動地鎖為"唯讀"狀態. 如果不想鎖, 那還必須得調stsadm來解除鎖.
場管理員執行了備份操作之後, 忘記了給網站集解鎖. 剛好, 這個朋友的網站集上有那麼一些自訂的solution, 而這些solution在開啟網站的時候一定要擁有寫入權限. 於是導致了文章開頭那樣奇怪的問題.
SharePoint產品是很強大, 可是要想用好不容易呀~~~~
參考資料:
Setsitelock: Stsadm operation (Office SharePoint Server)
http://technet.microsoft.com/en-us/library/cc262811%28office.12%29.aspx
Backup: Stsadm operation (Office SharePoint Server)
http://technet.microsoft.com/en-us/library/cc263441%28office.12%29.aspx?track=cc_exchange_sync