Conocer Si existe un inicio de sesion en SQL

04/11/2003 - 23:33 por Hernan Arboleda | Informe spam
Hola Grupo

Hay forma de saber si un Login de un usuario existe??

Me explico
Utilizo sp_Addlogin 'Usuario_SysOF', 'miClave'
Pero si el Login existe me genera un error
' Servidor: mensaje 15025, nivel 16, estado 1, procedimiento sp_addlogin,
línea 56
El inicio de sesión 'Usuario_SysOF' ya existe.'

Deseo saber si 'Usuario_SysOF' ya existe para no crealo??

Mil gracias por cualquier informacion

Hernan

Preguntas similare

Leer las respuestas

#1 Isaías
04/11/2003 - 23:55 | Informe spam
Puede que te de una idea de como manejar la situacion

declare @MyUser varchar(15)
SET @MyUser = 'Usuario_SysOF'

if exists(select name from master..sysusers where name =
@MyUser)
select 'El usuario '+ @MyUser+' ya existe'
else
exec sp_Addlogin @MyUser, 'miClave'
#2 Fernando G. Guerrero
05/11/2003 - 08:08 | Informe spam
Hola Isaías,

Disculpa que me entrometa en esta conversación, pero yo preferiría no
acceder a tablas del sistema directamente, sino utilizar una función del
sistema (como SUSER_SID):

DECLARE @MyUser sysname
SET @MyUser = N'Usuario_SysOF'

IF SUSER_SID(@MyUser) IS NULL
EXEC sp_addlogin @MyUser, N'miClave'
ELSE
SELECT 'El inicio de sesión '+ @MyUser+' ya existe'

Por otro lado, el scripts que has enviado comprueba la existencia de un
registro en la tabla sysusers, y dependiendo de ello crea un inicio de
sesión, el cual no se almacenaría en sysusers, sino en la tabla syslogins.
Además la tabla sysusers contiene también los roles de la base de datos,
además de los usuarios de la base de datos, por lo que podría darse el caso
de que existiera un rol con ese nombre y no un usuario.

Además, los objetos del sistema, como los inicios de sesión deben ser
almacenados en variables de tipo sysname (nvarchar(128)), como norma
general, para hacerlos directamente compatibles con los procedimientos del
sistema.

Perdona este comentario que no tiene ninguna importancia, pero si ejecutas
tu script en un sistema que se haya instalado coomo sensible a mayúsculas,
te daría un error de sintaxis, ya que el procedimiento sp_Addlogin no
existiría en ese sistema (existiría el sp_addlogin).

Saludos

Fernando G. Guerrero
SQL Server MVP
CEO & Principal Mentor
Solid Quality Learning
www.solidqualitylearning.com

"Comparte lo que sabes, aprende lo que no sepas"

"Isaías" wrote in message
news:05db01c3a326$b8b832f0$
Mostrar la cita
#3 Carlos Sacristan
05/11/2003 - 08:45 | Informe spam
¡¡Dos días seguidos leyendo a Fernando!! ¿Dónde lo celebramos? ;-)



Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)
MVP SQL Server
Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Fernando G. Guerrero" escribió en el mensaje
news:
Mostrar la cita
caso
Mostrar la cita
#4 Fernando G. Guerrero
05/11/2003 - 08:48 | Informe spam
Es que es casi medianoche en Seattle y estoy muy contento porque hemos
resuelto un grave problema con un cliente a base de detectar un bug
indocumentado en SQL Server 2000 ;-)

A parte de que me encantaría participar más en este grupo, aunque veo que lo
tenéis excelentemente cubierto (de lo cual me alegro mucho ya que así
también puedo aprender yo)

Una cerveza en cuando tengamos ocasión. :-)


Fernando G. Guerrero
SQL Server MVP
CEO & Principal Mentor
Solid Quality Learning
www.solidqualitylearning.com

"Comparte lo que sabes, aprende lo que no sepas"

"Carlos Sacristan" wrote in message
news:
Mostrar la cita
mensaje
Mostrar la cita
syslogins.
Mostrar la cita
del
Mostrar la cita
ejecutas
Mostrar la cita
mayúsculas,
Mostrar la cita
Ads by Google
Search Busqueda sugerida