Here's how I would do it: Use Enterprise forms. You'll find hundreds of other uses for it down the road, too, so it's a great investment. It has both conditional databinding and conditional visibility. You can ascertain the role/permission level of the logged on user, and then pass a parameter to a query which in turn populates a datagrid which holds the appropriate results. So the procedure would be to store the data about MSDS in a table with a column that could be searched on for the permissions aspect.
SGSV (used to be SQL Grid Selected View) at tressleworks.com is a powerful tool also, less expensive and not as feature-rich (Enterprise forms does data collection and work flow and reporting, where as SGSV is very power-packed for a narrower reporting kind of purpose). This could certainly return the results of a query, and if your users were in DNN roles to determine which permissions level they were at, I think you could use a token to grab that value and pass it to a query in SGSV. SGSV is one of the very wonderful DNN utilities that surpasses many more costly modules in its virtues.
Given the cost factors and versatility of both, I suppose I'd start by looking at SGSV and then at EF. I find both to be central to DNN portal development. There are other tools out there that overlap feature-wise with these that others can mention and more than one way to accomplish what you want.
Not at all difficult to write a simple module, either.