Từ tài liệu. có vẻ như bạn muốn sử dụng ẩn danh.
Apex thường chạy trong ngữ cảnh hệ thống; nghĩa là các quyền của người dùng hiện tại, các bảo mật cấp trường và các quy tắc chia sẻ không được tính đến trong quá trình thực thi mã, ngoại lệ duy nhất cho quy tắc này là mã Apex được thực hiện bằng lệnh gọi executeAnonymous. executeAnonymous luôn thực hiện bằng cách sử dụng quyền đầy đủ của người dùng hiện tại. Để biết thêm thông tin về executeAnonymous, xem Khối ẩn danh.
Mặc dù Apex không thực thi quyền cấp đối tượng và cấp trường theo mặc định, bạn có thể thực thi các quyền này trong mã của mình bằng cách gọi rõ ràng phương thức mô tả kết quả (của Schema.DescribeSObjectResult) và trường mô tả phương thức kết quả (của Schema.DescribeFieldResult) để kiểm tra mức cấp quyền truy cập của người dùng hiện tại. Bằng cách này, bạn có thể xác minh xem người dùng hiện tại có các quyền cần thiết hay không và chỉ khi người đó có đủ quyền, bạn có thể thực hiện một hoạt động DML cụ thể hoặc một truy vấn.
Ví dụ: bạn có thể gọi phương thức isAccessible, isCreateable hoặc isUpdateable của Schema.DescribeSObjectResult để xác minh xem người dùng hiện tại đã đọc, tạo hoặc cập nhật quyền truy cập vào một sObject, tương ứng. Tương tự, Schema.DescribeFieldResult cho thấy các phương thức kiểm soát truy cập mà bạn có thể gọi để kiểm tra quyền truy cập đọc, tạo hoặc cập nhật của người dùng hiện tại cho một trường. Ngoài ra, bạn có thể gọi phương thức isDeletable được cung cấp bởi Schema.DescribeSObjectResult để kiểm tra xem người dùng hiện tại có quyền xóa một sObject cụ thể không.
http://www.salesforce.com/us/developer/docs/apexcode/index_Left.htm#StartTopic=Content/apex_classes_perms_enforcing.htm#kanchor431
Bạn đã bao giờ tìm thấy một giải pháp cho điều này? – turbo2oh