创建 LDAP 用户验证环境,方法为:创建 LDAP 服务器配置对象、创建使用该 LDAP 服务器的登录策略、创建使用该登录策略对 LDAP 服务器进行验证的用户。
前提条件
必须具有 LDAP 服务器。
您必须具有以下系统特权:
(可选)要启用 TLS 加密以与 LDAP 服务器通信,需要标识一个证书文件以便服务器使用。以下语句是说明如何指定证书文件的示例。
SET OPTION PUBLIC.trusted_certificates_file='c:\\certificates\\trusted.txt'; |
要在后续步骤中启用 TLS 加密,应在 TLS OFF 子句出现的每个示例中,将该子句更改为 TLS ON。
执行 VALIDATE LDAP SERVER 语句,以测试与 LDAP 服务器的连接。
例如,以下语句验证现有 LDAP 服务器的连接属性。数据库服务器使用提供的证书连接到 LDAP 服务器。
VALIDATE LDAP SERVER SEARCH DN URL 'ldap://iq10web:389/dc=sybase,dc=com?dn?sub?uid=*' ACCESS ACCOUNT 'cn=Manager,dc=sybase,dc=com' IDENTIFIED BY 'Not4YourEyes' AUTHENTICATION URL 'ldap://iq10web:389/' CONNECTION TIMEOUT 1000 CONNECTION RETRIES 3 TLS OFF; |
此 LDAP 服务器使用端口 389 进行通信。本示例不启用 TLS 加密 (TLS OFF)。执行 VALIDATE LDAP SERVER 语句时必须没有错误,才能继续下一个步骤。
执行 CREATE LDAP SERVER 语句,以创建 LDAP 服务器配置对象。
例如,以下语句定义一个可用于用户验证的 LDAP 服务器配置对象。
CREATE LDAP SERVER prim_ldap SEARCH DN URL 'ldap://iq10web:389/dc=sybase,dc=com?dn?sub?uid=*' ACCESS ACCOUNT 'cn=Manager,dc=sybase,dc=com' IDENTIFIED BY 'Not4YourEyes' AUTHENTICATION URL 'ldap://iq10web:389/' CONNECTION TIMEOUT 1000 CONNECTION RETRIES 3 TLS OFF; |
与 VALIDATE LDAP SERVER 语句不同,CREATE LDAP SERVER 语句不尝试连接到 LDAP 服务器。
执行 CREATE LDAP SERVER 语句,以创建第二个 LDAP 服务器配置对象,用于进行故障转移。此步骤可选,但要执行后续步骤则需要完成此步骤。
例如,以下语句定义一个可用作用户验证故障转移的 LDAP 服务器配置对象。
CREATE LDAP SERVER sec_ldap SEARCH DN URL 'ldap://iq10web:390/dc=sybase,dc=com?dn?sub?uid=*' ACCESS ACCOUNT 'cn=Manager,dc=sybase,dc=com' IDENTIFIED BY 'Not4YourEyes' AUTHENTICATION URL 'ldap://iq10web:390/' CONNECTION TIMEOUT 1000 CONNECTION RETRIES 3 TLS OFF; |
此 LDAP 服务器使用端口 390 进行通信。
执行 SET OPTION 语句,将登录模式更改为启用 LDAP 用户验证。
例如,以下语句同时启用标准用户验证和 LDAP 用户验证。
SET OPTION PUBLIC.login_mode='Standard,LDAPUA'; |
可查询 login_mode 选项的当前设置,如下所示:
SELECT connection_property('login_mode'); |
执行 CREATE LOGIN POLICY 语句,创建新登录策略。
例如,以下语句创建可用于用户验证的新登录策略。
CREATE LOGIN POLICY ldap_policy_both LDAP_PRIMARY_SERVER=prim_ldap LDAP_SECONDARY_SERVER=sec_ldap LDAP_FAILOVER_TO_STD=ON; |
主 LDAP 服务器和次级 LDAP 服务器的名称在此登录策略中指定。如果与此登录策略相关联的用户验证失败,将尝试标准验证(如果登录模式允许)。可查询登录策略的当前设置,如下所示:
SELECT lpo.* FROM sysloginpolicyoption AS lpo, sysloginpolicy AS lp WHERE lpo.login_policy_id = lp.login_policy_id AND lp.login_policy_name = 'ldap_policy_both'; |
执行 CREATE USER 语句创建新用户 ID,该用户具有在前一步骤中定义的 LDAP 登录策略。
例如,以下语句创建一个新用户 ID,该用户对主 LDAP 服务器或次级 LDAP 服务器进行验证。
CREATE USER ldap_user01 LOGIN POLICY ldap_policy_both; |
省略 IDENTIFIED BY 子句。IDENTIFIED BY 子句用于指定标准验证中使用的口令。如果使用此子句指定口令,该口令不必与 LDAP 服务器验证的口令相同。因为此口令会在用户首次对 LDAP 服务器验证成功时被替换,所以此处省略 IDENTIFIED BY 子句。
激活 LDAP 服务器以便快速使用。以下语句激活主 LDAP 服务器和次级 LDAP 服务器。
ALTER LDAP SERVER prim_ldap WITH ACTIVATE; ALTER LDAP SERVER sec_ldap WITH ACTIVATE; |
可使用以下查询确定所有 LDAP 服务器的当前状态。
call sa_get_ldapserver_status; |
结果集的 ldsrv_state 列指示两个 LDAP 服务器处于 READY 状态。
执行 Interactive SQL CONNECT 语句,以连接到使用 LDAP 用户验证的数据库。
例如,以下语句使用指定用户 ID 和口令连接到示例数据库。
CONNECT DATABASE demo USER ldap_user01 IDENTIFIED BY 'abcd1234'; |
如果 LDAP 服务器用户验证失败,则将尝试标准验证。如果标准口令与提供的口令不匹配(例如,因在 LDAP 验证期间未更新口令),则标准验证可能失败。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |