For us to provide useful help, please be very specific on how you are carrying out your search including details of what you enter into the field(s) during the search and what type of fields those are.
In addition, if you use a full access account to open the file and then do the same find with exactly the same criteria, do you get the same problem?
Thank you and Tom for your responses.
The search is very straightforward. I tried to search on a number field of DBID and another text field for Name by clicking the FIND icon and the field with 1234 for DBID and Smith for Name. It returned not found for a record we knew that it was there.
If I use a full access account to open the file and do the same find with the exactly the same criteria, I found the record as usual.
The wrong results happened to users with Data Entry Only Audit privilege after I added the customized privilege with the Audit Log plugin. It occured to me that it may be caused by the audit log. But the same implementation worked for other database but not this one.
I really appreciate your insight and suggestions!
1 of 1 people found this helpful
I don't know for sure if this is the reason for your Find failing to bring up that record as I can't examine your file, but the following is consistent with the results that you report:
If you use Manage | Security to set up Record Level Access Control, any Find that you perform will automatically omit any record that the user is not allowed to view.
Try using the limited access account to Show All Records. Do some of the records come up coveted with a "no access" screen? That would confirm that RLA has been set up for this privilege set.
Thank you so much for your pointer.
Yes, I used Manage | Security | Privilege Sets | Custom Record privileges. For each table, VIEW, EDIT and DELETE were set to be limited for fmDataGuard 3 to log the actions. When I set all table View to be yes, users with Data Entry Only Audit privilege will be able to use FIND correctly. In the login script triggered by the event of OnFirstWindowOpen, I added the sentence to set $$LogViews to be True in order to put record views log in the audit log file.
Another way for FIND to work properly is to remove the setting of $$logViews to be True in the login script and set all table VIEW to be limited by calling DataGaurd_PostView when $$LogViews=True. This way VIEW will not be recorded in audit log most of the time.
When $$LogViews is set to be True in login script and VIEW for tables is set to be limited in Custom Record privileges, the FIND function will return NO RECORD for any search we knew have records satisfying the FIND criteria.
I am still a little puzzled by the FIND result. All the records with Limited VIEW only for logging the event, how come all the records were automatically omitted from being viewed? Any insight?
I would need to see the data in the fields that might affect access for the record in question and also the specific settings for viewing records specified for the privilege set in question.