Consulta sobre CREATE LOGIN y CREATE USER en sql server 2005

11/05/2007 - 17:27 por Fernando Briano | Informe spam
Buenas, estoy intentando crear logins y usuarios de base de datos en SQL
Server 2005.
Para esto, quiero tener un procedimiento almacenado que dé el alta al
usuario en la base de datos (tblUsuario), y cree el respectivo login y
usuario de base de datos.
Intento usando: CREATE LOGIN y CREATE USER. De la siguiente forma me
funciona:

CREATE LOGIN NombreDelUsuario WITH PASSWORD = 'Pasword1234'
CREATE USER NombreDelUsuario FROM LOGIN NombreDelUsuario

Sin embargo, necesito que el nombre de usuario y contraseña, sean variables.
Que ambos sean recibidos por el procedimiento como parámetros:
@Nombre y @Password

Intenté :

CREATE LOGIN @Nombre WITH PASSWORD = @Password
CREATE USER @Nombre FROM LOGIN @Nombre

Pero me dió error:
Mens. 102, Nivel 15, Estado 1, Línea 7
Sintaxis incorrecta cerca de '@Nombre'.

Mens. 319, Nivel 15, Estado 1, Línea 7
Sintaxis incorrecta junto a la palabra clave 'with'. Si esta instrucción es
una expresión de tabla común o una cláusula xmlnamespaces, la instrucción
anterior debe terminarse con punto y coma (;).

Intenté haciendo que las variables sean varchar y sysname, pero no hubo
diferencia.
Agradezco cualquier ayuda que puedan brindarme.

Saludos

Fernando Briano

Preguntas similare

Leer las respuestas

#1 Jose Mariano Alvarez
12/05/2007 - 01:28 | Informe spam
En el post <uo73fD#,
DIJO .
Sin embargo, necesito que el nombre de usuario y contraseña, sean variables.
Que ambos sean recibidos por el procedimiento como parámetros:
@Nombre y @Password





Ceo que deberas usar EXEC()


Saludos
Ing. Jose Mariano Alvarez


(Cambia los ceros por O y saca lo que sobra)


IMPORTANTE

Por favor traten de indicar la versión de SQL y Service Pack.
La inclusión de (CREATE, INSERTS, etc.) para poder reproducir el
problema también ayuda.
Respuesta Responder a este mensaje
#2 Maxi
13/05/2007 - 02:05 | Informe spam
Hola, vas a tener que usar SQL-dinamico (sp_executesql)

http://www.hayes.ch/sql/sql_dinamico.html


"Fernando Briano" escribió en el mensaje
news:uo73fD%
Buenas, estoy intentando crear logins y usuarios de base de datos en SQL
Server 2005.
Para esto, quiero tener un procedimiento almacenado que dé el alta al
usuario en la base de datos (tblUsuario), y cree el respectivo login y
usuario de base de datos.
Intento usando: CREATE LOGIN y CREATE USER. De la siguiente forma me
funciona:

CREATE LOGIN NombreDelUsuario WITH PASSWORD = 'Pasword1234'
CREATE USER NombreDelUsuario FROM LOGIN NombreDelUsuario

Sin embargo, necesito que el nombre de usuario y contraseña, sean
variables. Que ambos sean recibidos por el procedimiento como parámetros:
@Nombre y @Password

Intenté :

CREATE LOGIN @Nombre WITH PASSWORD = @Password
CREATE USER @Nombre FROM LOGIN @Nombre

Pero me dió error:
Mens. 102, Nivel 15, Estado 1, Línea 7
Sintaxis incorrecta cerca de '@Nombre'.

Mens. 319, Nivel 15, Estado 1, Línea 7
Sintaxis incorrecta junto a la palabra clave 'with'. Si esta instrucción
es una expresión de tabla común o una cláusula xmlnamespaces, la
instrucción anterior debe terminarse con punto y coma (;).

Intenté haciendo que las variables sean varchar y sysname, pero no hubo
diferencia.
Agradezco cualquier ayuda que puedan brindarme.

Saludos

Fernando Briano

Respuesta Responder a este mensaje
#3 Javier Loria
13/05/2007 - 16:11 | Informe spam
Hola Fernando:
Utiliza sp_addlogin y sp_adduser. Asumiendo que estas en la BD donde
quieres agregar el usuario, seria:
EXEC SP_ADDLOGIN @Nombre, @Password
EXEC SP_ADDUSER @Nombre, @Nombre
Saludos,

Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

"Fernando Briano" wrote in message
news:uo73fD%
Buenas, estoy intentando crear logins y usuarios de base de datos en SQL
Server 2005.
Para esto, quiero tener un procedimiento almacenado que dé el alta al
usuario en la base de datos (tblUsuario), y cree el respectivo login y
usuario de base de datos.
Intento usando: CREATE LOGIN y CREATE USER. De la siguiente forma me
funciona:

CREATE LOGIN NombreDelUsuario WITH PASSWORD = 'Pasword1234'
CREATE USER NombreDelUsuario FROM LOGIN NombreDelUsuario

Sin embargo, necesito que el nombre de usuario y contraseña, sean
variables. Que ambos sean recibidos por el procedimiento como parámetros:
@Nombre y @Password

Intenté :

CREATE LOGIN @Nombre WITH PASSWORD = @Password
CREATE USER @Nombre FROM LOGIN @Nombre

Pero me dió error:
Mens. 102, Nivel 15, Estado 1, Línea 7
Sintaxis incorrecta cerca de '@Nombre'.

Mens. 319, Nivel 15, Estado 1, Línea 7
Sintaxis incorrecta junto a la palabra clave 'with'. Si esta instrucción
es una expresión de tabla común o una cláusula xmlnamespaces, la
instrucción anterior debe terminarse con punto y coma (;).

Intenté haciendo que las variables sean varchar y sysname, pero no hubo
diferencia.
Agradezco cualquier ayuda que puedan brindarme.

Saludos

Fernando Briano

Respuesta Responder a este mensaje
#4 Fernando Briano
14/05/2007 - 18:48 | Informe spam
Javier Loria escribió:
Hola Fernando:
Utiliza sp_addlogin y sp_adduser. Asumiendo que estas en la BD donde
quieres agregar el usuario, seria:
> EXEC SP_ADDLOGIN @Nombre, @Password
EXEC SP_ADDUSER @Nombre, @Nombre
> Saludos,



Javier:
Al final terminé usando tu solución y me anduvo bien. Agrego que al
Procedimiento SP_ADDUSER se le puede pasar como parámetro el rol del
usuario (se pueden crear nuevos en "Funciones de base de datos" dentro
Seguridad/Funciones/).
No la había usado en un primer momento debido a que en MSDN:
http://msdn2.microsoft.com/en-us/li...81422.aspx
Dice:
This feature will be removed in a future version of Microsoft SQL
Server. Avoid using this feature in new development work, and plan to
modify applications that currently use this feature. Use CREATE USER
instead.
Sin embargo, por ahora sirve, y con CREATE USER no pude.
Gracias a todos por su aporte.
Saludos

Fernando
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida