Tuesday, April 1, 2008

バグ on SharePoint (解決!!)

解決方法ですが、

STS__1 データベースの dbo.Perms テーブルを直接いじります。
うちの現象では、消滅していたサイトのレコードがテーブルから無くなっていたので、
他の適当なサイトのレコードを要所変更してレコードを挿入。

INSERT INTO dbo.Perms
SELECT
 SiteId,
 -- この値は dbo.Webs.ScopeId
 'c26944b5-627e-498d-b91f-cdb7b9c916ae' as ScopeId,
 RoleDefWebId,
 -- この値は dbo.Webs.Id
 '15368009-af2a-4222-8321-04702ac1def0' as WebId,
 DelTransId,
 -- この値は dbo.Webs.FullUrl
 'operation' as ScopeUrl,
 AnonymousPermMask,
 Acl
FROM dbo.Perms
WHERE ScopeUrl = 'sales'

実行後、消滅していた子サイトにアクセスすると、取り敢えず表示される様になる筈。
後は、サイトのユーザー権限を微調整したりデッドリンクを張りなおせば元通り。

また起こっても慌てない様に、サイトレベルでの日次バックアップを構築せねば。
DBバックアップ・リストアでは他のサイトのコンテンツがロールバックされでしまうので...

あっ、正常時のバックアップイメージからPermsテーブルだけリストアすればよかった?

0 comments: