久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

Xlight FTP/使用數據庫存儲過程

來自站長百科
夢回千禧年討論 | 貢獻2011年8月6日 (六) 08:38的版本
(差異) ←上一版本 | 最后版本 (差異) | 下一版本→ (差異)
跳轉至: 導航、? 搜索

Xlight FTP | Xlight FTP安裝 |Xlight FTP使用

使用Xlight FTP服務器數據庫存儲過程[ ]

Xlight FTP服務器可以配置使用數據庫存儲過程認證ftp用戶. 它提供了靈活性以集成Xlight FTP服務器到其他類型數據庫應.

在我們開始存儲過程指南之前, 我們需要解釋一些關于ODBC功能如何在Xlight FTP服務器內部運作.

Xlight FTP服務器使用2個數據庫表存儲用戶設置. Xlight FTP服務器ODBC功能最主要的表是"acct_table", 它存儲一個用戶基本的設置, 例如host_id, host_port, 用戶名, 口令和他的組, 主目錄和主目錄權限等. 第二個表是"acct_param_table", 由在"acct_table"查詢返回的"param_index"列做索引. 它存儲用戶的其他設置, 這些設置可以作為所有用戶的參數模板.

當用戶登錄到FTP服務器, Xlight FTP服務器里將發(fā)送二次SQL查詢到這個數據庫, 驗證他的口令和獲得他的設置. 第一次SQL查詢用這個用戶名和口令, 在數據庫查找符合記錄, 并且獲得基本的參數, 例如"home_path", "home_perm"等. 第一次SQL查詢返回的"param_index"值為索引將用于第二次SQL查詢. 如果第一次SQL查詢不返回"param_index", Xlight FTP服務器將不會發(fā)送第二次SQL查詢. 第二次SQL查詢將查詢數據庫表“acct_param_table”獲得此用戶的更多參數.

在Xlight FTP服務器使用數據庫存儲過程[ ]

許多數據庫系統支持存儲過程. 我們使用MySQL數據庫作為例子. 使用MySQL之前, 你必須下載最新的 MySQL ODBC Driver - 3.51.16 或者更高版本. 否則,因為MySQL的Bug #27544, 第二次SQL查詢將會失敗. 其他類型的數據庫,你也最好升級數據庫相應的ODBC Driver到最新版本.

在使用存儲過程之前必須設置數據庫ODBC數據源. 你可以參考這里的設置步驟.

在本例中, 我們有一個表"account_info"在這個數據庫里. 此表是其他數據庫應用程序所使用, 它存儲用戶名, 口令和用戶發(fā)表的文章數目(posts). 我們也創(chuàng)建了另一個表"acct_param_table", 它是Xlight FTP服務器中的一張數據庫表, 用于存儲用戶參數. 我們沒有創(chuàng)建Xlight FTP服務器的主要數據庫表"acct_table ", 因為我們將使用存儲過程模擬其功能.

A1.jpg


下面代碼是范例MySQL存儲過程test () ,它接受2個參數, username_in和password_in.

DELIMITER $$ DROP PROCEDURE IF EXISTS test $$ CREATE PROCEDURE test(username_in VARCHAR(65), password_in VARCHAR(65)) main: BEGIN

 DECLARE user_name VARCHAR(65);
 DECLARE home_path VARCHAR(255);
 DECLARE home_perm VARCHAR(10);
 DECLARE num_posts, param_index INT(10);
 SELECT `account`, `Posts`
   INTO user_name, num_posts
   FROM account_info
   WHERE account = username_in AND password = password_in;
 IF user_name != username_in THEN
   LEAVE main;
 END IF;
 SET home_perm = 'LRS';
 IF num_posts > 100 THEN
   SET param_index = 1;
   SET home_path = 'c:\\folder_1';
 ELSEIF num_posts > 200 THEN
   SET param_index = 2;
   SET home_path = 'c:\\folder_2';
 ELSE
   SET param_index = 0;
   SET home_path = 'c:\\folder_0';
 END IF;
 SELECT home_path,home_perm,param_index;

END $$ DELIMITER ;


存儲過程test()接受明碼文本口令的password_in參數. 你必須為虛擬服務器配置ODBC使用明碼文本口令, 如下圖所示

A2.jpg


上面的存儲過程test()將檢查數據庫account_info驗證用戶, 如果用戶名或口令不符合, 將沒有結果集返回Xlight FTP服務器,這個用戶的驗證將失敗.

在成功的用戶認證以后, 這個程序將根據用戶在"account_info"表里發(fā)表的文章數目(posts), 返回不同的param_index, home_path值. 最終test()程序將用語句"SELECT home_path,home_perm,param_index;"返回結果集到Xlight FTP服務器.

因為test()程序替換"acct_table"的功能, 您應該放置"call test('$USER','$PASS');"在選項"替換第一條內部SQL查詢語句"中,如下圖所示.


A3.jpg

$USER和$PASS是預定義參數, Xlight FTP服務期將用登錄用戶實際的用戶名和密碼自動替換它們. 如果需要查詢支持的預定義參數, 請查閱幫助手冊的[全局選項]->[高級]這一節(jié).

如果您想要解決數據庫查詢的問題,你可以選擇這個選項"記錄SQL查詢錯誤到系統錯誤日志",你將能在系統錯誤日志中看到SQL查詢錯誤.


參考來源[ ]


Xlight FTP使用手冊導航

Xlight FTP安裝

Xlight FTP服務器安裝

Xlight FTP使用

使用Xlight FTP的UPnP功能 | 設置Xlight FTP SSL/TLS功能 | 設置Xlight FTP SSH2/SFTP協議 | UNC路徑賬號身份模擬功能 | 使用ODBC用戶數據庫 | 使用數據庫存儲過程 | 將文件傳輸日志通過ODBC寫入數據庫 | 設置電子郵件通知 | 整合微軟活動目錄 | 整合LDAP服務器 | 設置外部認證的默認用戶