Usually in companies, the employee information is stored on an Active Directory server. So I am guessing when we log on to our machine using ID/pwd, it goes and checks an Active Directory. I am wondering开发者_如何学C why Active directory is so universal in use when storing employee information.
Why not use a db? I am aware theoretically of the differences between AD and DB, but from what I know, I do not see why AD is a natural choice for storing employee information.Here are some reasons why AD is preferred compared to a Relational Database when storung user data
- AD is heirarchical so if your data is like an employee record where you have a superior then AD is a natural choice having said that AD schema consists of objectclasses and attributes rather than an a DB's tables. This means it uses objectclass inheritance model which is cleaner than linking multipe tables together.
- Read performance in AD is faster then DB in most cases. But remember DB is faster in saving data.
- Data Synchronizatoin happens out of the box and nearly no administration at all.
- Probaly not related to your question but worth mentioning, AD already has a built in functionalities such as secure storage for hashed passwords, password policies, permissions around password changes and password resets which if you use a DB you have to build this on your own
- Since AD is LDAP then you dont need database drivers to connect to it.
- With AD you can have multiple values in one attribute if you do this on a normalized database you have to store each attribute value into multiple table linked to the master table.
- Schema is standardized in AD so where ever you go it will remain the same
I hope this helps
精彩评论