Another quick and dirty SQL solution.
We had a need to take an existing app and make it so we could run it for multiple owners, as though they each had their own installation, but we didn't want to make a lot of code changes and we didn't want to actually have it connect to different databases because we make schema changes as we mod the app fairly frequently.
This is what I came up with: Use "Application Name" in the connection string as a filter key and make VIEWs that filter on APP_NAME() that the application will use instead of the real table.
Rename the tables that need to vary by owner.
exec sp_rename 'mytable', 'mytable_byappname'
Add a column to record the owner.
ALTER TABLE mytable_byappname ADD appname varchar(255) DEFAULT App_Name()
Set that column to the first owner
UPDATE mytable_byappname SET appname='hafthor.com'
Add that new appname column to your primary key if you are using a natural key (so that the same natural key can be used across owners)
Add that new appname column to your indexes (before other columns) if you think you'll need it.
Add a new index on just this new appname column, so the view will be fast (as long as the number of records for any given owner doesn't represent more than say 10% of all records).
Create a view that filters by owner
CREATE VIEW [mytable] AS SELECT * FROM [mytable_byappname] WHERE appname=App_Name()
Now, just add 'Application Name=hafthor.com' or whatever to the connection string.
Consider making the Application Name really short.