Xlight使用SQL Server验证用户

  在我们的一个数据管理系统的项目中,需要让FTP使用与系统相同的用户。这就需要让FTP服务端访问数据库,取得用户信息。我们使用的Xlight FTP Server的外部权限鉴定功能能够轻松地实现这一功能。

环境

Windows 2008 R2 标准版

SQL Server 2008 R2 Express

Xlight 3.6.5

创建ODBC数据源

  运行odbcad32,启动ODBC数据源管理器,在用户DSN中添加新项,选SQL Server,之后填写相关信息,直到完成。

Xlight使用SQL Server验证用户

  最后一步不要忘了测试下数据源。

数据库的改动

  Xlight对查询数据库返回的结果格式有一定要求,需要要对数据库做一些改动。按照我们的设计,Xlight通过ODBC,在数据库中使用用户名和密码进行查询。如果查询成功,则取出到该用户对应的组。例如原数据库表中有如下数据:

Xlight使用SQL Server验证用户

  为了尽可能不影响原有数据库,我们选择使用创建视图而不是创建新表的方式来返回Xlight所需的数据。其中,Xlight ODBC数据库表结构可以在帮助文档中找到。

acct_table(用户表)

SELECT 0 AS host_id, 0 AS host_port, Account AS username, PasswordHash AS password, 0 AS no_password, NULL AS home_path, NULL AS home_perm, Role AS groupname, NULL AS expire_time, 0 AS hide_pub_path, 0 AS hide_grp_path, 0 AS enable_quotas, 0 AS enable_ratios, 0 AS freeze_user, 0 AS bypass_svr_max, NULL AS virtual_path_indexes, 0 AS param_index
FROM dbo.Account

acct_param_table(参数表)

SELECT 0 AS param_index, 0 AS max_down_speed, 0 AS max_up_speed, 0 AS max_user_conn, 0 AS max_conn_per_ip, 0 AS max_session_time, 0 AS max_down_file_num, 0 AS max_up_file_num, 0 AS max_session_down, 0 AS max_session_up, 0 AS max_down_file_size, 0 AS max_up_file_size, 0 AS disk_quotas, 0 AS ratios_type, 0 AS download_ratios, 0 AS upload_ratios, 0 AS starting_credit, 0 AS ftp_cmd_speed, NULL AS allowed_login_ip, NULL AS denied_login_ip, NULL AS allowed_login_time, NULL AS deny_ftp_commands, NULL AS files_allow_access, NULL AS files_deny_access, 0 AS send_socket_buffer, 0 AS recv_socket_buffer

virtual_path_table(虚拟目录表)

SELECT 0 AS virtual_path_index, NULL AS virtual_path, NULL AS real_path, NULL AS permission 设置Xlight全局选项中的ODBC数据源

  全局选项->高级->ODBC数据库设置,把刚才创建的ODBC数据源的信息输进去,测试通过后,即可确定。

Xlight使用SQL Server验证用户

设置站点的组用户

  为了方便起见,我们把所有权限相关的设置放在了Xlight的组权限中。当然,放在数据库中也是可以的。我们设定添加了新的组:“管理员”

Xlight使用SQL Server验证用户

  注意这边的组的名称和数据库中的相同。

设置站点属性,启用外部用户鉴权

  设定鉴权类型:ODBC,我们选择的密码类型:SHA1,勾选”忽略'host_id'列“、”忽略'host_id'列“

Xlight使用SQL Server验证用户

  所有的设置完成,试着用FlashFxp登录下,成功。

Xlight FTP Server v3.7.6 简体中文版下载

Xlight使用SQL Server验证用户

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/10972.html