Siempre que he tenido que crear una base de datos en SQL Server lo he hecho desde la
consola de administracin, incluyendo las tareas relativas a la creacin de nuevos
usuarios y sus autorizaciones sobre las bases de datos creadas.
Hoy sin embargo me ha tocado preparar un script que se encargue de crear una base de
datos, crear una cuenta de usuario, y autorizarla sobre la base de datos.
use Master
CREATE DATABASE bbddPrueba
GO
exec sp_addlogin 'usrPrueba', 'usrPruebaPWD'
GO
Use bbddPrueba
exec sp_grantdbaccess 'usrPrueba'
GO
exec sp_addrolemember 'db_owner','usrPrueba'
GO
Lo que hace el script es muy sencillo. Trabajando primero sobre master, mediante
CREATE DATABASE crea la nueva base de datos de nombre bbddPrueba, y crea a
continuacin el usuario usrPrueba. Despus de esto se cambia la base de datos de
trabajo a la recin creada use bbddPrueba y se autoriza al usuario a acceder a ella con
sp_grantdbaccess. Mediante la ltima orden, sp_addrolemember, hacemos que el
nuevo usuario tome el role de propietario de la base de datos.
Esto ltimo puede no ser lo conveniente en muchas situaciones en las que prefiramos
tener un mayor control sobre las acciones que pueden realizar los usuarios. Para estos
casos deberemos utilizar otro role que el de db_owner y autorizar las acciones mediante
instrucciones GRANT.
seguridad es lo ideal.
Lo Mismo Aplica para
sp_addrole
sp_addrolemember
sp_adduser
sp_defaultdb
sp_defaultlanguage
sp_droplogin
sp_grantlogin
sp_helpuser
sp_password
sp_revokelogin
xp_logininfo