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

¿Backup y Restore Login SQL?

Estas en el tema de ¿Backup y Restore Login SQL? en el foro de SQL Server en Foros del Web. Buenas Tardes Quisiera hacerles una consulta haber si es que se puede realizar un Backup de los Logins (Usuarios) del SQL Server y si se ...
  #1 (permalink)  
Antiguo 09/08/2010, 14:37
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 5 meses
Puntos: 220
¿Backup y Restore Login SQL?

Buenas Tardes

Quisiera hacerles una consulta haber si es que se puede realizar un Backup de los Logins (Usuarios) del SQL Server y si se puede como haria para poder restaurarlos.

Gracias.
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #2 (permalink)  
Antiguo 09/08/2010, 14:46
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: ¿Backup y Restore Login SQL?

Para que edicion de SQL Server?
  #3 (permalink)  
Antiguo 09/08/2010, 15:10
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 5 meses
Puntos: 220
Respuesta: ¿Backup y Restore Login SQL?

Para la Edicion de SQL Server 2005 primordialmente pero si fuera 2008 Mejor
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #4 (permalink)  
Antiguo 09/08/2010, 16:16
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: ¿Backup y Restore Login SQL?

Código SQL:
Ver original
  1. USE master
  2. GO
  3. IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL
  4.   DROP PROCEDURE sp_hexadecimal
  5. GO
  6. CREATE PROCEDURE sp_hexadecimal
  7.     @binvalue varbinary(256),
  8.     @hexvalue VARCHAR (514) OUTPUT
  9. AS
  10. DECLARE @charvalue VARCHAR (514)
  11. DECLARE @i INT
  12. DECLARE @LENGTH INT
  13. DECLARE @hexstring CHAR(16)
  14. SELECT @charvalue = '0x'
  15. SELECT @i = 1
  16. SELECT @LENGTH = DATALENGTH (@binvalue)
  17. SELECT @hexstring = '0123456789ABCDEF'
  18. WHILE (@i <= @LENGTH)
  19. BEGIN
  20.   DECLARE @tempint INT
  21.   DECLARE @firstint INT
  22.   DECLARE @secondint INT
  23.   SELECT @tempint = CONVERT(INT, SUBSTRING(@binvalue,@i,1))
  24.   SELECT @firstint = FLOOR(@tempint/16)
  25.   SELECT @secondint = @tempint - (@firstint*16)
  26.   SELECT @charvalue = @charvalue +
  27.     SUBSTRING(@hexstring, @firstint+1, 1) +
  28.     SUBSTRING(@hexstring, @secondint+1, 1)
  29.   SELECT @i = @i + 1
  30. END
  31.  
  32. SELECT @hexvalue = @charvalue
  33. GO
  34.  
  35. IF OBJECT_ID ('sp_help_revlogin') IS NOT NULL
  36.   DROP PROCEDURE sp_help_revlogin
  37. GO
  38. CREATE PROCEDURE sp_help_revlogin @login_name sysname = NULL AS
  39. DECLARE @name sysname
  40. DECLARE @TYPE VARCHAR (1)
  41. DECLARE @hasaccess INT
  42. DECLARE @denylogin INT
  43. DECLARE @is_disabled INT
  44. DECLARE @PWD_varbinary  varbinary (256)
  45. DECLARE @PWD_string  VARCHAR (514)
  46. DECLARE @SID_varbinary varbinary (85)
  47. DECLARE @SID_string VARCHAR (514)
  48. DECLARE @tmpstr  VARCHAR (1024)
  49. DECLARE @is_policy_checked VARCHAR (3)
  50. DECLARE @is_expiration_checked VARCHAR (3)
  51.  
  52. DECLARE @defaultdb sysname
  53.  
  54. IF (@login_name IS NULL)
  55.   DECLARE login_curs CURSOR FOR
  56.  
  57.       SELECT p.sid, p.name, p.TYPE, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM
  58. sys.server_principals p LEFT JOIN sys.syslogins l
  59.       ON ( l.name = p.name ) WHERE p.TYPE IN ( 'S', 'G', 'U' ) AND p.name <> 'sa'
  60. ELSE
  61.   DECLARE login_curs CURSOR FOR
  62.  
  63.  
  64.       SELECT p.sid, p.name, p.TYPE, p.is_disabled, p.default_database_name, l.hasaccess, l.denylogin FROM
  65. sys.server_principals p LEFT JOIN sys.syslogins l
  66.       ON ( l.name = p.name ) WHERE p.TYPE IN ( 'S', 'G', 'U' ) AND p.name = @login_name
  67. OPEN login_curs
  68.  
  69. FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @TYPE, @is_disabled, @defaultdb, @hasaccess, @denylogin
  70. IF (@@fetch_status = -1)
  71. BEGIN
  72.   PRINT 'No login(s) found.'
  73.   CLOSE login_curs
  74.   DEALLOCATE login_curs
  75.   RETURN -1
  76. END
  77. SET @tmpstr = '/* sp_help_revlogin script '
  78. PRINT @tmpstr
  79. SET @tmpstr = '** Generated ' + CONVERT (VARCHAR, GETDATE()) + ' on ' + @@SERVERNAME + ' */'
  80. PRINT @tmpstr
  81. PRINT ''
  82. WHILE (@@fetch_status <> -1)
  83. BEGIN
  84.   IF (@@fetch_status <> -2)
  85.   BEGIN
  86.     PRINT ''
  87.     SET @tmpstr = '-- Login: ' + @name
  88.     PRINT @tmpstr
  89.     IF (@TYPE IN ( 'G', 'U'))
  90.     BEGIN -- NT authenticated account/group
  91.  
  92.       SET @tmpstr = 'CREATE LOGIN ' + QUOTENAME( @name ) + ' FROM WINDOWS WITH DEFAULT_DATABASE = [' + @defaultdb + ']'
  93.     END
  94.     ELSE BEGIN -- SQL Server authentication
  95.         -- obtain password and sid
  96.             SET @PWD_varbinary = CAST( LOGINPROPERTY( @name, 'PasswordHash' ) AS varbinary (256) )
  97.         EXEC sp_hexadecimal @PWD_varbinary, @PWD_string OUT
  98.         EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT
  99.  
  100.         -- obtain password policy state
  101.         SELECT @is_policy_checked = CASE is_policy_checked WHEN 1 THEN 'ON' WHEN 0 THEN 'OFF' ELSE NULL END FROM sys.sql_logins WHERE name = @name
  102.         SELECT @is_expiration_checked = CASE is_expiration_checked WHEN 1 THEN 'ON' WHEN 0 THEN 'OFF' ELSE NULL END FROM sys.sql_logins WHERE name = @name
  103.  
  104.             SET @tmpstr = 'CREATE LOGIN ' + QUOTENAME( @name ) + ' WITH PASSWORD = ' + @PWD_string + ' HASHED, SID = ' + @SID_string + ', DEFAULT_DATABASE = [' + @defaultdb + ']'
  105.  
  106.         IF ( @is_policy_checked IS NOT NULL )
  107.         BEGIN
  108.           SET @tmpstr = @tmpstr + ', CHECK_POLICY = ' + @is_policy_checked
  109.         END
  110.         IF ( @is_expiration_checked IS NOT NULL )
  111.         BEGIN
  112.           SET @tmpstr = @tmpstr + ', CHECK_EXPIRATION = ' + @is_expiration_checked
  113.         END
  114.     END
  115.     IF (@denylogin = 1)
  116.     BEGIN -- login is denied access
  117.       SET @tmpstr = @tmpstr + '; DENY CONNECT SQL TO ' + QUOTENAME( @name )
  118.     END
  119.     ELSE IF (@hasaccess = 0)
  120.     BEGIN -- login exists but does not have access
  121.       SET @tmpstr = @tmpstr + '; REVOKE CONNECT SQL TO ' + QUOTENAME( @name )
  122.     END
  123.     IF (@is_disabled = 1)
  124.     BEGIN -- login is disabled
  125.       SET @tmpstr = @tmpstr + '; ALTER LOGIN ' + QUOTENAME( @name ) + ' DISABLE'
  126.     END
  127.     PRINT @tmpstr
  128.   END
  129.  
  130.   FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @TYPE, @is_disabled, @defaultdb, @hasaccess, @denylogin
  131.    END
  132. CLOSE login_curs
  133. DEALLOCATE login_curs
  134. RETURN 0
  135. GO
  136.  
  137. EXEC sp_help_revlogin @login_name = NULL

Etiquetas: backup, login, restore, sql
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 11:18.