"db_happy" <da******@freemail.gr> wrote in message
news:b6**************************@posting.google.c om...
Hi
I need some design info. Say that I need to create an educational lab
for databases with SQL Server. I need all the users to be able to
execute common SQL commands ( create - alter - drop table , insert ,
update , delete ) and each user have his own space ( users not able to
see others data and a limit say of 2 MB) . The most obvious solution
is to create ( if I have 100 users ) , 100 login account ( SQL Server
Accounts ) , then create 100 databases , and assign each user to one
of this account with database role db_datawriter. Is this the best
solution or there is another way to do it ?
Thanks
If you need to limit the users' space, then individual databases are
probably the only way to go, since there's no way to manage space quotas
within a single database. (At least, there's no standard way without using a
third party tool or building your own quota tools.) Note that db_datawriter
cannot create objects, so you would need to add the user to db_ddladmin
also, or create a custom role with the permissions set you want.
The downside of this approach is management of the large number of databases
and the associated files, backups etc. However, if you always use standard
scripts for creating/dropping each database, leverage Windows groups for
authentication (if possible), and perhaps use SQL maintenance plans for
backups, then you should be able to keep the work required to a minimum.
Simon