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

SQL Anywhere 12.0.1 » SQL Anywhere 服务器 - 数据库管理 » 启动并连接到数据库 » SQL Anywhere 数据库连接 » Kerberos 验证

 

在 Windows 上使用 SSPI 进行 Kerberos 登录

在 Windows 域中,可以在基于 Windows 的计算机上使用 SSPI 且无需在客户端计算机上安装 Kerberos 客户端。Windows 域帐户已经拥有关联的 Kerberos 主体。

 ♦ 使用 SSPI 进行连接
注意

SSPI 只能在 Kerberos 连接参数中由 SQL Anywhere 客户端使用。SQL Anywhere 数据库服务器不能使用 SSPI,它们需要支持的 Kerberos 客户端而不是 SSPI。

  1. 设置 Kerberos 验证。请参见设置 Kerberos 验证

  2. 使用 -krb 选项启动 SQL Anywhere 服务器以便启用 Kerberos 验证。例如:

    dbeng12 -krb -n my_server_princ C:\kerberos.db
  3. 将公共或临时公共选项 login_mode 更改为包含 Kerberos 的值。必须具有 DBA 权限才能设置此选项。例如:

    SET OPTION PUBLIC.login_mode = 'Kerberos';
  4. 为客户端创建数据库用户 ID。(或者,只要现有数据库用户拥有正确的权限,您就可以使用该用户的 ID 进行 Kerberos 登录。)例如:

    CREATE USER kerberos_user
    IDENTIFIED BY abc123;
  5. 执行 GRANT KERBEROS LOGIN TO 语句,创建从客户端的 Kerberos 主体到现有数据库用户 ID 的映射。此语句需要 DBA 权限。例如:

    GRANT KERBEROS LOGIN TO "pchin@MYREALM.COM" 
    AS USER "kerberos_user";
  6. 从客户端计算机连接数据库。例如:

    dbisql -c "KERBEROS=SSPI;Server=my_server_princ"

    若连接字符串中指定了 Kerberos=SSPI,则会尝试进行 Kerberos 登录。

    某个用户已经登录,且登录时使用的用户配置文件名与服务器的缺省数据库中的 Kerberos 登录映射相匹配,那么,使用以下 Interactive SQL 语句来尝试连接同样也会成功:

    CONNECT USING 'KERBEROS=SSPI';