Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 远程数据和批量操作 » 访问远程数据 » 使用目录访问服务器

 

创建目录访问服务器

使用 CREATE SERVER 语句或 Sybase Central 中的 [创建目录访问服务器向导] 创建目录访问服务器。

创建目录访问服务器时,您可以控制能够访问的子目录数以及目录访问服务器是否能够用于修改现有文件。

设置目录访问服务器必须执行以下步骤:

  1. 为目录创建远程服务器(需要 DBA 权限)。

  2. 为可以使用目录访问服务器的数据库用户创建外部登录(需要 DBA 权限)。

  3. 创建用于访问计算机上的目录的代理表(需要 RESOURCE 权限)。

♦  创建并配置目录访问服务器 (Sybase Central)
  1. 以具有 DBA 权限的用户身份连接到数据库。

  2. 在左窗格中,双击 [目录访问服务器]。

  3. 从 [文件] 菜单中,选择 [新建] » [目录访问服务器]。

  4. 按照 [创建目录访问服务器向导] 中的说明进行操作。

♦  创建并配置目录访问服务器 (SQL)
  1. 以具有 DBA 权限的用户身份连接到主机数据库。

  2. 使用 CREATE SERVER 语句创建远程服务器。

    例如:

    CREATE SERVER my_dir_tree
    CLASS 'directory'
    USING 'root=c:\Program Files';
  3. 使用 CREATE EXTERNLOGIN 语句创建外部登录。

    例如:

    CREATE EXTERNLOGIN DBA TO my_dir_tree;
  4. 使用 CREATE EXISTING TABLE 语句为目录创建代理表。

    例如:

    CREATE EXISTING TABLE my_program_files AT 'my_dir_tree;;;.';

    在此示例中,my_program_files 是目录名称,my_dir_tree 是目录访问服务器名称。

示例

以下语句创建一个名为 directoryserver3 的新目录访问服务器(可用于访问最多三级子目录),为 DBA 用户创建一个到该目录访问服务器的外部登录,并创建一个名为 diskdir3 的代理表。

CREATE SERVER directoryserver3
CLASS 'DIRECTORY'
USING 'ROOT=c:\mydir;SUBDIRS=3';
CREATE EXTERNLOGIN DBA TO directoryserver3;
CREATE EXISTING TABLE diskdir3 AT 'directoryserver3;;;.';

使用 sp_remote_tables 系统过程,您可以看见运行该数据库服务器的计算机上 c:\mydir 下的所有子目录:

CALL sp_remote_tables( 'directoryserver3' );

使用以下 SELECT 语句,您可以查看文件 c:\mydir\myfile.txt 的内容:

SELECT contents
FROM diskdir3
WHERE file_name = 'myfile.txt';

或者,您可以从这些目录中选择数据:

-- Get the list of directories in this disk directory tree.
SELECT permissions, file_name, size
FROM diskdir3
WHERE PERMISSIONS LIKE 'd%';
-- Get the list of files.
SELECT permissions, file_name, size
FROM diskdir3
WHERE PERMISSIONS NOT LIKE 'd%';
另请参见