Define the class that your SOQL query is within as with sharing
.
This is covered by the online documentation here.
The with sharing
keyword allows you to specify that the sharing rules for the current user be taken into account for a class. You have to explicitly set this keyword for the class because Apex code runs in system context. In system context, Apex code has access to all objects and fields— object permissions, field-level security, sharing rules aren’t applied for the current user. This is to ensure that code won’t fail to run because of hidden fields or objects for a user.
And here is an example:
Use the with sharing
keywords when declaring a class to enforce the sharing rules that apply to the current user. For example:
public with sharing class sharingClass
{
// Code here
}