在 SQL Anywhere 数据库上设置 Kerberos 验证。请参见设置 Kerberos 验证。
使用 -krb 或 -kr 选项启动 SQL Anywhere 服务器,以启用 Kerberos 验证,或者使用 -kl 选项指定 GSS-API 库的位置并启用 Kerberos。
将公共或临时公共选项 login_mode 更改为包含 Kerberos 的值。您必须具有 DBA 权限才能更改此选项的设置。Login_mode 数据库选项确定是否允许 Kerberos 登录。因为数据库选项只作用于它们所在的数据库,所以,不同的数据库即使是在同一服务器内装载和运行,也可以有不同的 Kerberos 登录设置。例如:
SET OPTION PUBLIC.login_mode = 'Kerberos,Standard'; |
Login_mode 数据库选项接受一个或多个下列值:
Standard 允许标准登录。这是缺省值。标准连接登录必须提供用户 ID 和口令,且不使用集成或 Kerberos 连接参数。
Integrated 允许集成登录。
Kerberos 允许 Kerberos 登录。
将 login_mode 数据库选项设置为 Kerberos,会使只有被授予了 Kerberos 登录映射的用户才能进行连接。如果用户不具有 DBA 权限,则尝试使用用户 ID 和口令连接会生成错误。
为客户端创建数据库用户 ID。只要现有数据库用户拥有正确的权限,您就可以使用该用户的 ID 进行 Kerberos 登录。例如:
CREATE USER "kerberos-user" IDENTIFIED BY abc123; |
执行 GRANT KERBEROS LOGIN TO 语句,以创建从客户端的 Kerberos 主体到现有数据库用户 ID 的映射。此语句需要 DBA 权限。例如:
GRANT KERBEROS LOGIN TO "pchin@MYREALM.COM" AS USER "kerberos-user"; |
如果想要在使用的 Kerberos 主体没有映射的情况下进行连接,请确保具有 Guest 数据库用户 ID 且拥有口令。请参见缺省集成登录用户。
确保客户端用户已经使用其 Kerberos 主体登录(具有有效的 Kerberos 票据授予票据)且客户端的 Kerberos 票据未过期。Windows 用户登录到已拥有票据授予票据的域帐户,使他们可以对服务器进行验证(假设他们的主体拥有足够权限)。
票据授予票据是一种通过用户口令加密的 Kerberos 票据,票据授予服务使用该票据来验证用户的身份。
从客户端连接,指定 KERBEROS 连接参数(通常为 KERBEROS=YES,但也可以使用 KERBEROS=SSPI 或 KERBEROS=GSS-API-library-file)。如果指定了用户 ID 或口令连接参数,则它们将被忽略。例如:
dbisql -c "KERBEROS=YES;Server=my_server_princ" |
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |