Windows

我可以在 Access 應用程序中使用 Active Directory 來實現使用者級安全嗎?漂亮嗎?

  • January 23, 2010

我的公司相當廣泛地使用 Access + MySQL 應用程序,如果我發布原始碼,它可能會在 Daily WTF 上看到一些顯著的流量。使用者及其權限的管理正在失控,我似乎花費了越來越多的時間來調整這些或試圖弄清楚為什麼有人看不到他們應該看到的東西。

它最初設置為三個使用者在一個倉庫中使用。它現在被四個州的 20 多個使用者使用,並且很快會添加更多功能,並且功能已經以大約 10 比 1 的比例添加到使用者中……實際的核心應用程序還不錯,但管理使用者是一種痛苦。Access 為數據本身提供了一個很好的前端,它儲存在我們總部的 MySQL 後端。使用者在衛星分支機構擁有 Cisco VPN 盒子,這也很穩定。Scope 已經從一個簡單的倉庫運輸記錄發展成為一個成熟的 CRM/ERP ……好吧,我不認為你可以稱之為解決方案。也許是乳液。如果我有預算,我會打電話給 SAP 並告訴他們去做。恐怕,在可預見的未來,這是不可能的。

按照 Google 的說明(並不總是最安全的做法),我使用 Access 中的“使用者級安全嚮導”為各個使用者分配使用者名和密碼,當我開始時總共有 4-5 個使用者和 3 個活躍使用者時,這很好. 但它現在相當笨拙。我最深切的願望和願望是,有某種方法可以根據 Active Directory 使用者名和密碼對使用者進行身份驗證並分配特權角色。有人告訴我這是不可能的。一些Google搜尋沒有發現任何值得注意的東西。

我推測應該可以使用 Active Directory 獲得某種身份驗證框架,因為 VBA 具有指向 Windows 中各種 API 的連結。但是……值得花時間和麻煩嗎?有沒有人讓這個工作,或者我不僅會炸毀我的 WTF 值得應用程序,而且還會炸毀域?

我知道這是可能的,但似乎很少有 Access 開發人員這樣做。如果其他人編寫了程式碼,我會自己使用它,但不需要它來自己編寫它。

關鍵概念是您可以使用 ADO 通過 LDAP 查詢訪問 AD 資訊。沒有辦法對 Access 對象強制執行權限,但您當然可以根據 AD 成員資格控制應用程序流/呈現。請參閱此執行緒作為起點。此外,還有一篇關於此的 MS 知識庫文章解釋了 LDAP 方法。

順便說一句,只要您不需要特定於 AD 的功能(例如組織單位),您就根本不需要使用 AD。您可以使用正常 API 呼叫來獲取組成員資訊。請參閱此 Stackoverflow 文章以獲取一些建議前進方向的程式碼(我無法驗證該程式碼,因為它看起來相當橢圓,即不是 API 聲明,但它提供了基本概念)。

引用自:https://serverfault.com/questions/105626