Anda di halaman 1dari 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 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.

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

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

El uso de estos procedimientos es relativamente sencillo,


los puedes invocar desde cualquie BD, lo nico que tienes
que hacer es Ejecutarlos y conocer sus parametros de los
cuales pasas por lo menos UNO. Aqui te va un ejemplo:
sp_addlogin [ @loginame = ] 'login'
[ , [ @passwd = ] 'password' ]
[ , [ @defdb = ] 'database' ]
[ , [ @deflanguage = ] 'language' ]
[ , [ @sid = ] sid ]
[ , [ @encryptopt = ] 'encryption_option' ]
EXEC sp_addlogin 'czarate', 'Pass', 'Pubs'
Crea un Inicio de sesin a un usuario czarate con
contrasena Pass y BD por defecto la famosa Pubs
sp_grantdbaccess [@loginame =] 'login'
[,[@name_in_db =] 'name_in_db' [OUTPUT]]

Anda mungkin juga menyukai