Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Crear usuarios con SQL Server Express

Estas en el tema de Crear usuarios con SQL Server Express en el foro de SQL Server en Foros del Web. Necesito ayuda para crear usuarios SQL, si se crean pero no funcionan para iniciar sesion, sale un error diciendo que el usuario no esta asociado ...
  #1 (permalink)  
Antiguo 04/05/2009, 11:17
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años
Puntos: 3
Crear usuarios con SQL Server Express

Necesito ayuda para crear usuarios SQL, si se crean pero no funcionan para iniciar sesion, sale un error diciendo que el usuario no esta asociado a una conexion de SQL Server de confianza.

Ademas me gustaria me dijeran la cadena para creacion de usuarios SQL (necesito usarla en c#).

Gracias y disculpen las molestias.
  #2 (permalink)  
Antiguo 04/05/2009, 11:40
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Crear usuarios con SQL Server Express

Código sql:
Ver original
  1. CREATE PROCEDURE [dbo].[Sp_CrearLogin]
  2. (
  3.     @DOMAIN VARCHAR(100),
  4.     @HOST   VARCHAR(100)
  5. )
  6. AS
  7. BEGIN TRY
  8.     DECLARE @SQLString NVARCHAR(MAX)
  9.     SET @SQLString = N'CREATE LOGIN [' + UPPER(@DOMAIN) + '\' + @HOST + '] FROM WINDOWS';
  10.     EXECUTE SP_EXECUTESQL @SQLString
  11.  
  12.     SET @SQLString = N'USE NOMBD;';
  13.     SET @SQLString =@SQLString  +  N'CREATE USER [' + UPPER(@DOMAIN) + '\' + @HOST + '] FOR LOGIN ' + '[' + UPPER(@DOMAIN) + '\' + @HOST + ']';
  14.     SET @SQLString =@SQLString  +  N' WITH DEFAULT_SCHEMA = NOMBD;'
  15.     EXECUTE SP_EXECUTESQL @SQLString
  16.  
  17.     --¡¡¡¡¡¡¡SE DEBE CAMBIAR DB_OWNER POR OTRO ROL CON MENOS PERMISOS SOBRE EL SERVIDOR!!!!!
  18.     SET @SQLString = N'EXECUTE SP_ROLEMEMBER "db_owner", [' + UPPER(@DOMAIN) + '\' + @HOST + ']'
  19.     EXECUTE SP_EXECUTESQL @SQLString
  20. END TRY
  21. BEGIN CATCH
  22.     PRINT 'NUMERO DE ERROR: ' + CONVERT(VARCHAR,ERROR_NUMBER());
  23.     PRINT 'MENSAJE DE ERROR: ' + ERROR_MESSAGE();
  24. END CATCH;
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #3 (permalink)  
Antiguo 04/05/2009, 12:37
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años
Puntos: 3
Respuesta: Crear usuarios con SQL Server Express

Le hice modificaciones como la base de datos a usar pero no supe donde debi cambiar el nombre de usuario y la contraseña, disculpa si estoy muy ignorante pero pues lo estoy jeje. Cheque en los inicios de sesion si habia una cuenta nueva y no hay.

Gracias por tu ayuda y disculpa esta nueva molestia.
  #4 (permalink)  
Antiguo 04/05/2009, 14:47
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Crear usuarios con SQL Server Express

Este login es para crear un usuario pero con el nombre de una pc de la red
si no existe el usuario de la red no se creera el usuario
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #5 (permalink)  
Antiguo 04/05/2009, 15:19
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años
Puntos: 3
Respuesta: Crear usuarios con SQL Server Express

Osea que checa que exista esa pc en la red y entonces crea el usuario.
Bueno el detalle es que por el momento lo estoy haciendo con un servidor local y quiero crear 3 usuarios dentro de una misma pc.

Ese codigo me servira cuando tenga que conectar las 4 computadoras en red y asi cree los usuarios pero por ahora necesito usuarios en una misma pc para hacer pruebas.

Muchas gracias y ojala puedas ayudarme con lo que te pido.
  #6 (permalink)  
Antiguo 04/05/2009, 15:42
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Crear usuarios con SQL Server Express

Prueba Esto
Código sql:
Ver original
  1. CREATE PROCEDURE [dbo].[Sp_CrearLogin]
  2. (
  3.     @USU  VARCHAR(100),
  4.     @CLA  VARCHAR(100),
  5.     @BD   VARCHAR(100)
  6. )
  7. AS
  8. BEGIN TRY
  9.     DECLARE @SQLString NVARCHAR(MAX)
  10.     SET @SQLString = N'CREATE LOGIN [' + UPPER(@USU) + '] WITH PASSWORD=N'''+ @CLA + ''' , DEFAULT_DATABASE=[' + @BD + '], DEFAULT_LANGUAGE=[Español], CHECK_EXPIRATION=OFF, CHECK_POLICY=ON';
  11.     EXECUTE SP_EXECUTESQL @SQLString
  12.  
  13.     SET @SQLString = N'USE NOMBD;';
  14.     SET @SQLString =@SQLString  +  N'CREATE USER [' + UPPER(@USU) + '] FOR LOGIN ' + '[' + UPPER(@USU) + ']';
  15.     SET @SQLString =@SQLString  +  N' WITH DEFAULT_SCHEMA = NOMBD;'
  16.     EXECUTE SP_EXECUTESQL @SQLString
  17.  
  18.     --¡¡¡¡¡¡¡SE DEBE CAMBIAR DB_OWNER POR OTRO ROL CON MENOS PERMISOS SOBRE EL SERVIDOR!!!!!
  19.     SET @SQLString = N'EXECUTE SP_ROLEMEMBER "db_owner", [' + UPPER(@USU) + ']'
  20.     EXECUTE SP_EXECUTESQL @SQLString
  21. END TRY
  22. BEGIN CATCH
  23.     PRINT 'NUMERO DE ERROR: ' + CONVERT(VARCHAR,ERROR_NUMBER());
  24.     PRINT 'MENSAJE DE ERROR: ' + ERROR_MESSAGE();
  25. END CATCH;
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones

Última edición por Dradi7; 05/05/2009 a las 09:03
  #7 (permalink)  
Antiguo 05/05/2009, 08:49
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años
Puntos: 3
Respuesta: Crear usuarios con SQL Server Express

Mira, como no se como usar un procedimiento almacenado, estoy modificando donde pones variables por los valores para que se genere el login pero tengo una duda, pongo el codigo modificado para que lo veas y despues te digo donde esta la duda:

BEGIN TRY

DECLARE @SQLString NVARCHAR(MAX)

SET @SQLString = N'CREATE LOGIN [Fredy1] WITH PASSWORD=N''123456'' , DEFAULT_DATABASE=[BIBLIOTECA], DEFAULT_LANGUAGE=[Español], CHECK_EXPIRATION=OFF, CHECK_POLICY=ON';

EXECUTE SP_EXECUTESQL @SQLString



SET @SQLString = N'USE BIBLIOTECA;';

SET @SQLString =@SQLString + N'CREATE USER [DELL710M\SQLEXPRESS] FOR LOGIN ' + '[' + UPPER(@DOMAIN) + '\' + @HOST + ']';

SET @SQLString =@SQLString + N' WITH DEFAULT_SCHEMA = BIBLIOTECA;'

EXECUTE SP_EXECUTESQL @SQLString



--¡¡¡¡¡¡¡SE DEBE CAMBIAR DB_OWNER POR OTRO ROL CON MENOS PERMISOS SOBRE EL SERVIDOR!!!!!

SET @SQLString = N'EXECUTE SP_ROLEMEMBER "db_owner", [' + UPPER(@DOMAIN) + '\' + @HOST + ']'

EXECUTE SP_EXECUTESQL @SQLString

END TRY

BEGIN CATCH

PRINT 'NUMERO DE ERROR: ' + CONVERT(VARCHAR,ERROR_NUMBER());

PRINT 'MENSAJE DE ERROR: ' + ERROR_MESSAGE();

END CATCH;
----------------------------------------

en esta linea SET @SQLString =@SQLString + N'CREATE USER [DELL710M\SQLEXPRESS] FOR LOGIN ' + '[' + UPPER(@DOMAIN) + '\' + @HOST + ']'; en domain y host que va?el otro domain y host si se que es el equipo donde esta el sql pero en el otro domain y host no se.

Lo mismo va para esta linea SET @SQLString = N'EXECUTE SP_ROLEMEMBER "db_owner", [' + UPPER(@DOMAIN) + '\' + @HOST + ']'.

Gracias y disculpa la molestia.
  #8 (permalink)  
Antiguo 05/05/2009, 09:04
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Crear usuarios con SQL Server Express

Perdon me equvice al momento de enviar el procedimiento ya lo corregi anda checka de nuevo el codigo q puse ultimo
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #9 (permalink)  
Antiguo 05/05/2009, 09:33
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años
Puntos: 3
Respuesta: Crear usuarios con SQL Server Express

no hay problema, gracias por corregirlo.

Edito el post para decirte que ya solucione el problema del login, solo que ahora me surgio otro problema:

Cuando quiero crear un usuario usando el procedimiento almacenado, me sale este error que no salia antes:

NUMERO DE ERROR: 2812
MENSAJE DE ERROR: No se encontró el procedimiento almacenado 'SP_ROLEMEMBER'.

Crea el usuario pero cuando llega a esa linea de codigo no encuentra el procedimiento y no le asigna el rol al usuario, por eso mismo me sale el error de que el usuario no puede accesar a la base de datos. Ya viendo las propiedades de cada usuario (desde el sql managment) solo viene activada la casilla "public", tons le puse otros dos roles (que no se como se pondria mas de un rol en el codigo que me pasaste), "db_datareader" y "db_datawriter".

Gracias.

Última edición por LOD_Fredy; 05/05/2009 a las 11:13
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:15.