|
日前,不小心将sharepoint站点给弄坏了,输入url后,会弹出对话框提示输入用户名,密码,输入用户名/密码后,点确定,就出错,提示:403禁止访问,网站要求登陆.
这应该是权限的问题,但无论我怎么设置,甚至给了everyone所有的权限都不能解决,如果有哪位xdjm知道,麻烦告知,不甚感激.
下面说说我的解决方案:
因为修改权限无法解决,我只好另谋他路.网站坏了,数据库还在,为了怕把数据库也弄坏了,我赶紧将数据库也做了备份.包括sharepoint_admin_content(管理中心数据库),sharepoint_config(配置数据库)和WSS_content(网站内容数据库)
注:我用是sharepoint service 3.0版
sharepoint_config..objects :物理对象表,包括站点,数据库,工作流作业等;其中的ID字段,如果是站点,则对应sharepoint_sitemap表中的applicationid字段,如果是数据库,则对应sitemap表的databaseid字段
sharepoint_config..sitemap :站点地图表,ID就是siteid,分别关联相应的站点和数据库
注:我的sharepoint网站没有任何自定义的内容,只有一个站点,所以操作起来会很简单.如果是多网站,有自定义的情况,还需要三思而后行.
1、删除sharepoint,删除原来的数据库,重新安装
2、创建应用程序和网站集
3、还原原来的WSS_content数据库,为了避免与现在的重复,改名为WSScontent
4、将sharepoint_config库objects表中name为WSS_content字段改为WSScontent(默认内容数据库是WSS_content,如果设置了不同的内容数据库名称,按实际处理),这个操作的意义就是将网站的数据库从WSS_content改挂到WSScontent
update sharepoint_config..objects set name='WSScontent' where name='WSS_content'
在执行语句前应该先查询一下
5、查询sharepoint_config库sitemap表中databaseid为objects表中name为WSScontent的ID的值的记录即:use sharepoint_config
select * from sitemap a,objects b where a.databaseid=b.id and b.name='WSScontent'
6、查出WSScontent库AllDocs表中siteid的值(我这里只建了一个site,所以只有一个,如果有多个site,包括前面几个步骤都需要考虑清楚了再做改动)
7、将5中查询出来的记录的id值修改为6查出来的siteid值;这个操作的意义在于将WSScontent中的逻辑site与现在的物理站点application和数据库关联
8、打开IE,在地址栏中输入网站的url,成功。 |
|