tags:

views:

90

answers:

5

Can anyone tell me if there are RDBMSs that allow me to create a separate database for every user so that there is full separation of users' data? Are there any?

I know I can add UID to every table but this solution has its own problems (for example per user database schema changes are impossible).

+1  A: 

Doesnt MySQL, PostgreSQL, Oracle and so on and so on allow you to do that?. There's the grant statements to control ACLs

svrist
+1  A: 

I would imagine most (all?) databases allow you to create a user which you could then grant database level access to? SQL server certainly does.

alexmac
A: 

MS SQLServer2005 is one which can be used for multiple users.An instance can be created if you have any, run the previlegs and use one user per instance

GustlyWind
A: 

Oracle lets you create a separate schema (set of tables, indexes, functions, etc) for individual users. This is good if they should have separate different tables. Creating a new user could be a very expensive operation as you would be making new tables. Updating is a nightmare as well, as you need to update the model for each user.

If you want everyone to have the same set of tables, but only able to view their own records then you could use Fine Grain Access Control or Virtual Private Database features to do this.

WW
+1  A: 

Another simple solution if you don't need the databases to be massive or scalable, say for teaching SQL to students or having many testers work against their own database to isolate problems is SQLite, that way the whole database is a single file (per user), and each user cannot possibly screw up or interfere with other users.

They can even mail you the databases, or install them anywhere, say at home and at work with no internet required.

Robert Gould