Thursday, December 3, 2009

BDC Crawl Error - Access Denied By BDC


Symptoms

When you created a BDC definition and starts crawling the content, you get an error message "The parameter is incorrect. (Access denied by BDC)".




How to solve the problem

When you have a problem in SharePoint there are several places to find more information about the error:
  • EventLog
  • SharePoint log "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\LOGS"
  • SQL log
Perform the following steps to figure out what the problem is:
1. In this case we start looking the the SharePoint log, because that's will probably the best place to get more information about the problem. So open the log file (if there are many log files, open the one which starts with your server name, and is the latest one).
2. Search for Access Denied.
3. If you find something like the message below, this post will probably describe your problem.
Access Denied for User 'JKNDEVSRV01\SPSearchService'. Securable MethodInstancewith Name 'EmployeeIDEnumeratorInstance' has ACL that contains: User 'JKNDEVSRV01\administrator' with Rights 'Execute, Edit, SetPermissions, UseInBusinessDataInLists, SelectableInClients'

4. The message below indicates that the Account which is used to crawl you BDC data as not enough rights to crawl the data.


Solution

Make sure the account which performs the crawling (Default Content Access Account) has enough rights on the BDC Definition.
Perform the following steps to solve the problem:

1. In the SharePoint Central Administrator go-to the Shared Service Provider -> BDB Application -> AdventureWorks -> Customer -> Manage Permissions, see figure below. (in this case AdventureWorks is my BDC Application and Customer is the entity to crawl.)




2. Make sure the crawling account is in the list and has at least Execute permissions.

Remark: After I published this post, I found some interesting link to the Microsoft site, which BDC Warnings and Error Messages.