You are on page 1of 2

CREAR CUENTA DE USUARIO PARA ACCESO A SQL SERVER

Siempre que he tenido que crear una base de datos en SQL Server lo he hecho desde la
consola de administración, incluyendo las tareas relativas a la creación 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
continuación el usuario usrPrueba. Después de esto se cambia la base de datos de
trabajo a la recién 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.

para Ejecutarlos necesitas conocer los parametros
sp_addlogin [ @loginame = ] 'login'
[ , [ @passwd = ] 'password' ]
[ , [ @defdb = ] 'database' ]
[ , [ @deflanguage = ] 'language' ]
[ , [ @sid = ] sid ]
[ , [ @encryptopt = ] 'encryption_option' ]
Asi Pues: Si tu ejecutas
EXEC sp_addlogin 'czarate', 'pass', 'pubs', 'french'
Estaras Creando un usuario "czarate" con contrasena "pass"
de acceso por defecto a PUBS, e idioma frances. ahora no
es necesario enviar todos los parametros aunque por

los puedes invocar desde cualquie BD. [ @deflanguage = ] 'language' ] [ . [ @defdb = ] 'database' ] [ .[@name_in_db =] 'name_in_db' [OUTPUT]] . Aqui te va un ejemplo: sp_addlogin [ @loginame = ] 'login' [ . 'Pubs' Crea un Inicio de sesión a un usuario czarate con contrasena Pass y BD por defecto la famosa Pubs sp_grantdbaccess [@loginame =] 'login' [. 'Pass'. [ @sid = ] sid ] [ . [ @encryptopt = ] 'encryption_option' ] EXEC sp_addlogin 'czarate'. [ @passwd = ] 'password' ] [ . lo único que tienes que hacer es Ejecutarlos y conocer sus parametros de los cuales pasas por lo menos UNO. 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 El uso de estos procedimientos es relativamente sencillo.seguridad es lo ideal.