Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

If I understand well in SP (out of the box) it is not possible to define single column (fields) permission for the various users of a site. I have seen some third party solutions which can do that, but they're not free. I have tried some workarounds to realize this, but as even the views of a lists are not permissions-customizable, i was not able to get things working. Is there a way to realize this option or the only way is to buy something?

share|improve this question

3 Answers 3

Even if you buy something, the third party solution won't be absolute. All the third party solutions do is lock down the views that can be shown to the end users. But if a user knows what they are doing, they can still get the data through Microsoft Access, Web Services, Reporting Services, and other means.

If you're looking for something to make it a little more difficult for someone to get the data, the third party tools will work. If you're looking for a secure solution, you probably will need to store the secret data in another list, then set permissions on the other list appropriately.

share|improve this answer
    
"If you're looking for a secure solution, you probably will need to store the secret data in another list, then set permissions on the other list appropriately." I'm not sure i have understand. Let's make a pratical example: I have a "Projects" list, with a "budget" column. I want that only the users with high permission can see it. So i have to delete the "budget" column from my "project" list, and create an additional list with just 2 columns: a lookup column to "projects - project name" and a "budget" column. Am i right? –  Anonymous Oct 21 '10 at 6:47
    
But then when i add an item to the projects list i have to manually go and specify the budget in the new list i suppose. That would be really a bad thing... –  Anonymous Oct 21 '10 at 6:48
    
Yes, your understanding is correct. And yes, it would require some custom code in order to do it, probably some event receivers to make it all happen seamlessly. It's not a simple out of the box solution. –  CodeThug Nov 22 '10 at 2:13

In terms of make vs buy anything the 3rd party solutions have implemented you can implement yourself. You need to determine the return on investment based on your requirements.

I would personally be suspicious of the 3rd party solutions I would advise to evaluate if they are truly secure by testing if the secured data is exposed by

  • Object Model Access
  • RSS Feeds
  • Export to Excel
  • SharePoint Workspace
  • Document Properties in Word
  • Full Text Search

Remember that the Full Text Search will bypass most kinds of security as the crawl typically run as a highly privileged user, renders the text in the WebPart and indexes it secure information can then leak either in the hit highlight summary.

Larbo's suggestion to store the data in a second list with appropriate item level permissions and using a lookup column to join it in is a good idea.

Additionally you might consider.

If the data is cheap to recreate or is stored somewhere else already you could implement a custom SPField to retrieve the data at runtime and render it.

If the data is expensive and the lookup column is unmanageable you couldstore the data encrypted in the list and only decrypt it at render time. Again a custom SPField should be able to do this.

share|improve this answer

you can find a usefull solution for your problem from here: http://splistsecurity.codeplex.com each column could have a separate permission

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.