• I personally don't like the approach of capturing user credentials at the report level. It is better to do this from the database inside of a stored procedure so that there is only 1 method for accessing the data. You could still create a table that would map certain users to certain regions. Then inside the proc you would do something like this:

    IF SYSTEM_USER IN (SELECT UserName FROM dbo.ReportUsers)

    BEGIN

    SELECT DISTINCT

    SalesRegion

    FROM datatable

    WHERE

    (SalesRegion IN

    (SELECT SalesRegion

    FROM ReportUsers

    WHERE (UserName IN (@parUserID))))

    END

    ELSE

    SELECT DISTINCT

    SalesRegion

    FROM datatable

    WHERE SalesRegion IN ('Central', 'West', 'East')

    Also, using procs will allow you to not give direct access to tables and procs generally result in better performance. Performance may not an issue in this case since the query will probably be parameterized, but it is a good practice to use procs over ad-hoc sql.