65.9K
CodeProject 正在变化。 阅读更多。
Home

设置 SharePoint 数据库

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.39/5 (16投票s)

2004年8月25日

5分钟阅读

viewsIcon

145163

深入了解 SharePoint 创建的数据库,以便在您的 .NET 应用程序中使用。

引言

众所周知,Microsoft SharePoint Portal Server 用于开发足够智能的门户,以无缝连接用户、团队和知识,使我们能够利用业务流程中的相关信息。

在这种情况下,能够交叉利用 SharePoint 存储的数据以及任何打算使用相同数据的其他应用程序变得至关重要,这些数据是通过 SharePoint GUI 输入的。通过使我们能够顺畅地使用门户以及通过门户输入的数据进行与其他应用程序的集成,可以实现 SharePoint 的真正成本、时间和生产力优势。

因此,我们无法控制 SharePoint 门户内的数据存储方式,但这不应成为设计 SharePoint 用户界面的限制。SharePoint 提供了足够的方法来处理我们想要集成到 SharePoint 外部的其他应用程序的所有数据。

原则上,SharePoint Portal Server 和 Windows SharePoint Services 使用 SQL Server 数据库来存储其所有文档、网页和元数据。另一个数据库用于存储配置详细信息。事实上,几乎所有与 SharePoint 相关的内容都存储在 SQL Server 2000 或 MSDE 数据库中。通过其自身的设计,数据库是 SharePoint 的核心,开发人员必须熟悉其格式才能利用它。

在安装过程中,可以定义 SharePoint 的数据库是 MSDE 还是 SQL Server 2000。SharePoint 数据存储在关系数据库中,具体取决于其安装方式,使用的是 MSDE 还是 SQL Server 2000。在相关的 SQL Server 的 Enterprise Manager 中可以看到所有 SharePoint 数据。

Sample screenshot

数据库名称根据门户的命名方式而不同。以下是一些关键数据库及其 SharePoint 命名法:

  • 以 _Config_db 结尾的数据库:它存储 SharePoint 服务器/场的所有配置数据库。任何与全局配置相关以及通过 SharePoint 中心管理设置的内容都存储在此数据库中。
  • 以 _SITE 结尾的数据库:它存储特定门户的所有内容。它包含文件、网页、Web、站点以及所有相关的 SharePoint 基础结构。
  • 以 _PROF 结尾的数据库:它存储有关用户配置文件的所有信息;它还存储有关要收集的各种用户配置文件的数据的详细信息。
  • 以 _SERV 结尾的数据库:它存储有关搜索、通知和索引的数据。它存储收集器日志信息以及为已爬取内容创建的文本索引。事实上,可以通过右键单击任何数据库并选择“属性”来轻松检查。事实上,这可以是一种了解您的门户的每个功能/活动占用多少空间的方法。

从开发人员的角度来看,_SERV 和 _SITE 数据库非常重要。_SERV 数据库有几个非常重要的表 - srch_GathererLog_*(可能有很多表)、srch_docsspecialprops 和 sub_PropVersions。这些表中的每一个都包含有关搜索的数据。srch_GathererLog_* 表包含来自收集器日志的所有日志信息。SharePoint 不允许从 UI 清除收集器日志,只能通过 Enterprise Manager 完成。

srch_docsspecialprops 和 sub_PropVersions 包含有关已索引文件的信息。srch_docsspecialprops 表包含有关作为外部文件源爬取的所有文件的信息,例如标题、作者、描述等。

_SITE 数据库中的表是非常重要的表。有像 Webs、Docs、DocVersions 和 Lists 这样的表。这些表的内容由它们的名称定义。Webs 表包含有关门户上 Web 的信息,而 Docs 表包含您门户基础结构中所有文档的路径、名称和实际内容。

您可以查看 Docs 和 DocVersions 表以快速查找门户中的文档数量和文档版本。事实上,Docs 表中的行数表示该特定表中的文档数量。DocVersions 表的情况也一样。SharePoint 对象模型显示的 文件数量将不同,因为它还会计算所有 .aspx 文件和 Web 部件 (.dwp) 文件,而不是仅用户存储的文件。

连接到 SharePoint 数据库就像连接任何常规数据库一样简单。与常规数据库一样,首先需要创建数据库连接。如果您想编写代码来操作 SharePoint 数据库,您需要创建一个 SqlConnection 对象实例来进行连接,同时在 C# 代码中包含对 System.DataSystem.Data.SqlClient 的引用才能使其正常工作。

SqlConnection connect = new _
  SqlConnection ("Server=’Viveks-server’; " + 
  "Database=’ViveksTest1_SITE’; Integrated Security=true ;");

或者,如果您通过 VS.NET SQL 连接对象在 VB.NET 中连接,您的最终连接字符串将如下所示:

Me.OleDbConnection1.ConnectionString = _ 
  "Integrated Security=SSPI;Packet Size=4096;" & _ 
  "Data Source=""MSBU-CMS1"";Tag with column" & _ 
  " collation when possible=False;Initial " & _
  "Catalog=SPS01_Config_db;Use Procedure for" & _
  " Prepare=1;Auto Translate=True;Persist Security " & _
  "Info=False;Provider=""SQLOLEDB.1""" & _
  ";Workstation ID=""MSBU-CMS1"";Use Encryption for Data=False"

要在 C# 中创建查询,我们可以使用以下代码:

SqlCommand cmd = connect.CreateCommand();
cmd.CommandText = "Select Distinct Sites.PortalName From Docs Cross Join Sites";

此特定查询从数据库中获取门户列表。

定义查询后,您可以像在 ADO.NET 中一样正常执行它。因此,根据我们正常的 ADO.NET 经验,以下代码将执行查询并创建数据读取器对象。

connect.Open();
SqlDataReader reader = cmd.ExecuteReader();

这真的很简单,您可以直接插入或更新 SharePoint 数据。但是,删除数据时必须小心,因为某些数据库对运行您的 SharePoint 站点至关重要。这里的原理是为了说明一种方法,通过这种方法,您可以开发自己的应用程序,直接从 SharePoint 数据库获取数据。它还强调 SQL Server 系统是 SharePoint 的核心,如果 SQL Server 出现问题,您的 SharePoint 系统很可能会宕机。因此,应该清楚的是,凭借 ADO.NET 和 SQL Server 2000 的功能,当您需要将 SharePoint 与自己的应用程序集成时,您可以肯定地利用 SharePoint 数据库。

© . All rights reserved.