Access アプリケーションのユーザー レベルのセキュリティに Active Directory を使用できますか? お願いします。

Access アプリケーションのユーザー レベルのセキュリティに Active Directory を使用できますか? お願いします。

私の会社では、Access + MySQL アプリケーションをかなり頻繁に使用しています。このアプリケーションのソース コードを投稿すれば、Daily WTF でかなりのトラフィックが見られるでしょう。ユーザーとその権限の管理が手に負えなくなってきており、これらの調整や、ユーザーが表示すべきものを表示できない理由の解明に、ますます多くの時間を費やしているようです。

当初は、1 つの倉庫で 3 人のユーザーが使用できるように設定されていました。現在では 4 つの州で 20 人以上のユーザーが使用しており、さらにユーザーが追加される予定です。また、機能はユーザー数とおよそ 10 対 1 の割合で追加されています... 実際のコア アプリケーションは悪くありませんが、ユーザーの管理は面倒です。Access は、本社の MySQL バックエンドに保存されているデータ自体の優れたフロント エンドになります。ユーザーはサテライト ブランチに Cisco VPN ボックスを使用しており、これも安定しています。範囲は、単純な倉庫出荷記録から本格的な CRM/ERP にまで広がりました... まあ、これをソリューションと呼ぶことはできないと思います。エマルジョンかもしれません。予算があれば、SAP に電話して、やるように言います。残念ながら、それは当面は不可能でしょう。

Google の指示に従って (必ずしも最も安全な方法とは言えませんが)、Access の「ユーザー レベル セキュリティ ウィザード」を使用して、さまざまなユーザーにユーザー名とパスワードを割り当てました。これは、合計 4 ~ 5 人のユーザーと 3 人のアクティブ ユーザーで始めたときは問題ありませんでしたが、今では非常に扱いにくくなっています。私の最大の願いと願望は、Active Directory のユーザー名とパスワードに基づいてユーザーを認証し、権限ロールを割り当てる方法があることです。それは不可能だと言われています。Google で数回検索しましたが、注目すべきものは何も見つかりませんでした。

VBA には Windows のあらゆる種類の API へのリンクがあるため、Active Directory を使用して何らかの認証フレームワークを取得できるはずだと私は推測しています。しかし、時間と手間をかける価値はあるのでしょうか? これまでにこれを機能させた人はいますか? それとも、WTF に値するアプリケーションだけでなくドメインも破壊される可能性がありますか?

答え1

可能だとはわかっていますが、それを実行している Access 開発者はほとんどいないようです。他の誰かがコードを書いたら自分でも使いますが、自分で書くほど必要ではありません。

重要な概念は、ADO を使用して LDAP クエリ経由で AD 情報にアクセスできることです。これを使用してアクセス オブジェクトに権限を強制することはできませんが、AD メンバーシップに基づいてアプリケーション フロー/プレゼンテーションを制御することは可能です。このスレッド出発点として。また、MSナレッジベースLDAP アプローチについて説明している記事。

ちなみに、AD固有の機能(組織単位など)が必要ない限り、ADを使用する必要はありません。通常のAPI呼び出しを使用して、グループメンバーシップ情報を取得できます。このStackoverflowの投稿進むべき方向を示唆するコードがいくつかあります (そのコードは、API 宣言ではなく、むしろ省略されているように見えるため、検証できませんが、基本的な概念を示しています)。

答え2

そのレベルで AD と直接インターフェイスすることはできません。直接実行できる最善の方法は、AD アカウントに基づいてファイル権限を割り当てることです。VBA でそれを実現するには多少の労力が必要ですが、理解できないほどのものではありません。取り組む前に、かなりしっかりした ROI 分析を行う必要があると思います。

関連情報