用于 Microsoft 索引服务的 OLE DB 访问接口

Microsoft Windows 2000 和 Windows Server 2003 包括 Microsoft Internet 信息服务 (IIS) 和 Microsoft 索引服务。这些服务基于文件的属性启用筛选文件并执行全文索引和文件数据的检索。

索引服务还包括用于 Microsoft 索引服务的 Microsoft OLE DB 访问接口。此访问接口可用来对非数据库文件进行全文索引或属性值搜索。可使用 sp_addlinkedserver 完成链接服务器定义,并使用 SQL Server Management Studio 进行安全设置。然后,分布式查询可引用访问接口来检索索引信息。

创建链接服务器以访问索引服务全文索引

  1. 使用索引服务创建全文索引。默认情况下,索引服务安装一个名为 default 的目录。有关详细信息,请参阅索引服务文档。

  2. 执行 sp_addlinkedserver 以创建链接服务器,指定 MSIDXS 为 provider_name,指定全文索引的名称为 data_source。

    例如,若要创建访问全文索引(名为 Web)的链接服务器(名为 FTIndexWeb),请执行:

    sp_addlinkedserver FTIndexWeb, 'Index Server', 'MSIDXS', 'Web'
    
  3. 索引服务客户端的安全授权是根据使用 Microsoft 索引服务的 OLE DB 访问接口的进程的 Windows 帐户进行的。对于 SQL Server 经过身份验证的登录名,分布式查询在 SQL Server 进程的上下文中运行。由于 SQL Server 通常在拥有高级授权的帐户下运行,因此某些 SQL Server 的经过身份验证的用户也可以使用索引服务链接服务器访问未经授权访问的信息。sysadmin 固定服务器角色成员通过严格控制可以使用索引服务链接服务器执行分布式查询的 SQL Server 登录名来解决这一问题。

    管理员首先使用 sp_droplinkedsrvlogin 来删除映射到索引服务链接服务器的所有登录名,例如:

    sp_droplinkedsrvlogin FTIndexWeb, NULL
    

    然后管理员使用 sp_addlinkedsrvlogin 为单个登录名授予访问链接服务器的权限,例如:

    sp_addlinkedsrvlogin FTIndexWeb, true, 'SomeLogin'
    

    若要执行这些操作,请在 SQL Server Management Studio 上右键单击链接服务器,单击**“属性”,然后选择“安全”**选项卡。

Transact-SQL 语句可以使用 OPENQUERY 函数向索引服务发出命令,使用的 SQL 语法与 SQL Server 支持的全文查询语法一致,后者是对数据库所存储数据进行全文检索的语法。“Index Server Programmer's Guide”(索引服务器程序员指南)中定义了索引服务支持的 SQL 全文语法,该指南可在 Microsoft Developer Network 或索引服务文档中找到。