|
begin process at 2008 07 04 09:41:22
Derniers logiciels
|
Trouver une ressource (Nouvelle version du moteur, plus rapide & pertinent, essayez le !)
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
SQL SERVER 2000 - EXPORTER LES COMPTES UTILISATEURS SQL ET NT EXISTANT SUR LE SERVEUR
Information sur la source
Description
Dans le cadre de migration de bases de données SQL Server, il faut absolument transférer les comptes provenant de la machine SQL Server 2000. Un script fourni par Microsoft permet d'effectuer ce travail automatiquement, on peut alors recréer les comptes SQL sur la nouvelle machine avant de restaurer les bases. Vous trouverez ce script sur le site du support Microsoft : - http://support.microsoft.com/kb/246133
Source
- ----- Begin Script, Create sp_help_revlogin procedure -----
-
- USE master
- GO
- IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL
- DROP PROCEDURE sp_hexadecimal
- GO
- CREATE PROCEDURE sp_hexadecimal
- @binvalue varbinary(256),
- @hexvalue varchar(256) OUTPUT
- AS
- DECLARE @charvalue varchar(256)
- DECLARE @i int
- DECLARE @length int
- DECLARE @hexstring char(16)
- SELECT @charvalue = '0x'
- SELECT @i = 1
- SELECT @length = DATALENGTH (@binvalue)
- SELECT @hexstring = '0123456789ABCDEF'
- WHILE (@i <= @length)
- BEGIN
- DECLARE @tempint int
- DECLARE @firstint int
- DECLARE @secondint int
- SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1))
- SELECT @firstint = FLOOR(@tempint/16)
- SELECT @secondint = @tempint - (@firstint*16)
- SELECT @charvalue = @charvalue +
- SUBSTRING(@hexstring, @firstint+1, 1) +
- SUBSTRING(@hexstring, @secondint+1, 1)
- SELECT @i = @i + 1
- END
- SELECT @hexvalue = @charvalue
- GO
-
- IF OBJECT_ID ('sp_help_revlogin') IS NOT NULL
- DROP PROCEDURE sp_help_revlogin
- GO
- CREATE PROCEDURE sp_help_revlogin @login_name sysname = NULL AS
- DECLARE @name sysname
- DECLARE @xstatus int
- DECLARE @binpwd varbinary (256)
- DECLARE @txtpwd sysname
- DECLARE @tmpstr varchar (256)
- DECLARE @SID_varbinary varbinary(85)
- DECLARE @SID_string varchar(256)
-
- IF (@login_name IS NULL)
- DECLARE login_curs CURSOR FOR
- SELECT sid, name, xstatus, password FROM master..sysxlogins
- WHERE srvid IS NULL AND name <> 'sa'
- ELSE
- DECLARE login_curs CURSOR FOR
- SELECT sid, name, xstatus, password FROM master..sysxlogins
- WHERE srvid IS NULL AND name = @login_name
- OPEN login_curs
- FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd
- IF (@@fetch_status = -1)
- BEGIN
- PRINT 'No login(s) found.'
- CLOSE login_curs
- DEALLOCATE login_curs
- RETURN -1
- END
- SET @tmpstr = '/* sp_help_revlogin script '
- PRINT @tmpstr
- SET @tmpstr = '** Generated '
- + CONVERT (varchar, GETDATE()) + ' on ' + @@SERVERNAME + ' */'
- PRINT @tmpstr
- PRINT ''
- PRINT 'DECLARE @pwd sysname'
- WHILE (@@fetch_status <> -1)
- BEGIN
- IF (@@fetch_status <> -2)
- BEGIN
- PRINT ''
- SET @tmpstr = '-- Login: ' + @name
- PRINT @tmpstr
- IF (@xstatus & 4) = 4
- BEGIN -- NT authenticated account/group
- IF (@xstatus & 1) = 1
- BEGIN -- NT login is denied access
- SET @tmpstr = 'EXEC master..sp_denylogin ''' + @name + ''''
- PRINT @tmpstr
- END
- ELSE BEGIN -- NT login has access
- SET @tmpstr = 'EXEC master..sp_grantlogin ''' + @name + ''''
- PRINT @tmpstr
- END
- END
- ELSE BEGIN -- SQL Server authentication
- IF (@binpwd IS NOT NULL)
- BEGIN -- Non-null password
- EXEC sp_hexadecimal @binpwd, @txtpwd OUT
- IF (@xstatus & 2048) = 2048
- SET @tmpstr = 'SET @pwd = CONVERT (varchar(256), ' + @txtpwd + ')'
- ELSE
- SET @tmpstr = 'SET @pwd = CONVERT (varbinary(256), ' + @txtpwd + ')'
- PRINT @tmpstr
- EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT
- SET @tmpstr = 'EXEC master..sp_addlogin ''' + @name
- + ''', @pwd, @sid = ' + @SID_string + ', @encryptopt = '
- END
- ELSE BEGIN
- -- Null password
- EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT
- SET @tmpstr = 'EXEC master..sp_addlogin ''' + @name
- + ''', NULL, @sid = ' + @SID_string + ', @encryptopt = '
- END
- IF (@xstatus & 2048) = 2048
- -- login upgraded from 6.5
- SET @tmpstr = @tmpstr + '''skip_encryption_old'''
- ELSE
- SET @tmpstr = @tmpstr + '''skip_encryption'''
- PRINT @tmpstr
- END
- END
- FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd
- END
- CLOSE login_curs
- DEALLOCATE login_curs
- RETURN 0
- GO
- ----- End Script -----
-
----- Begin Script, Create sp_help_revlogin procedure -----
USE master
GO
IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL
DROP PROCEDURE sp_hexadecimal
GO
CREATE PROCEDURE sp_hexadecimal
@binvalue varbinary(256),
@hexvalue varchar(256) OUTPUT
AS
DECLARE @charvalue varchar(256)
DECLARE @i int
DECLARE @length int
DECLARE @hexstring char(16)
SELECT @charvalue = '0x'
SELECT @i = 1
SELECT @length = DATALENGTH (@binvalue)
SELECT @hexstring = '0123456789ABCDEF'
WHILE (@i <= @length)
BEGIN
DECLARE @tempint int
DECLARE @firstint int
DECLARE @secondint int
SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1))
SELECT @firstint = FLOOR(@tempint/16)
SELECT @secondint = @tempint - (@firstint*16)
SELECT @charvalue = @charvalue +
SUBSTRING(@hexstring, @firstint+1, 1) +
SUBSTRING(@hexstring, @secondint+1, 1)
SELECT @i = @i + 1
END
SELECT @hexvalue = @charvalue
GO
IF OBJECT_ID ('sp_help_revlogin') IS NOT NULL
DROP PROCEDURE sp_help_revlogin
GO
CREATE PROCEDURE sp_help_revlogin @login_name sysname = NULL AS
DECLARE @name sysname
DECLARE @xstatus int
DECLARE @binpwd varbinary (256)
DECLARE @txtpwd sysname
DECLARE @tmpstr varchar (256)
DECLARE @SID_varbinary varbinary(85)
DECLARE @SID_string varchar(256)
IF (@login_name IS NULL)
DECLARE login_curs CURSOR FOR
SELECT sid, name, xstatus, password FROM master..sysxlogins
WHERE srvid IS NULL AND name <> 'sa'
ELSE
DECLARE login_curs CURSOR FOR
SELECT sid, name, xstatus, password FROM master..sysxlogins
WHERE srvid IS NULL AND name = @login_name
OPEN login_curs
FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd
IF (@@fetch_status = -1)
BEGIN
PRINT 'No login(s) found.'
CLOSE login_curs
DEALLOCATE login_curs
RETURN -1
END
SET @tmpstr = '/* sp_help_revlogin script '
PRINT @tmpstr
SET @tmpstr = '** Generated '
+ CONVERT (varchar, GETDATE()) + ' on ' + @@SERVERNAME + ' */'
PRINT @tmpstr
PRINT ''
PRINT 'DECLARE @pwd sysname'
WHILE (@@fetch_status <> -1)
BEGIN
IF (@@fetch_status <> -2)
BEGIN
PRINT ''
SET @tmpstr = '-- Login: ' + @name
PRINT @tmpstr
IF (@xstatus & 4) = 4
BEGIN -- NT authenticated account/group
IF (@xstatus & 1) = 1
BEGIN -- NT login is denied access
SET @tmpstr = 'EXEC master..sp_denylogin ''' + @name + ''''
PRINT @tmpstr
END
ELSE BEGIN -- NT login has access
SET @tmpstr = 'EXEC master..sp_grantlogin ''' + @name + ''''
PRINT @tmpstr
END
END
ELSE BEGIN -- SQL Server authentication
IF (@binpwd IS NOT NULL)
BEGIN -- Non-null password
EXEC sp_hexadecimal @binpwd, @txtpwd OUT
IF (@xstatus & 2048) = 2048
SET @tmpstr = 'SET @pwd = CONVERT (varchar(256), ' + @txtpwd + ')'
ELSE
SET @tmpstr = 'SET @pwd = CONVERT (varbinary(256), ' + @txtpwd + ')'
PRINT @tmpstr
EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT
SET @tmpstr = 'EXEC master..sp_addlogin ''' + @name
+ ''', @pwd, @sid = ' + @SID_string + ', @encryptopt = '
END
ELSE BEGIN
-- Null password
EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT
SET @tmpstr = 'EXEC master..sp_addlogin ''' + @name
+ ''', NULL, @sid = ' + @SID_string + ', @encryptopt = '
END
IF (@xstatus & 2048) = 2048
-- login upgraded from 6.5
SET @tmpstr = @tmpstr + '''skip_encryption_old'''
ELSE
SET @tmpstr = @tmpstr + '''skip_encryption'''
PRINT @tmpstr
END
END
FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd
END
CLOSE login_curs
DEALLOCATE login_curs
RETURN 0
GO
----- End Script -----
Conclusion
Bon coding
Romelard Fabrice [MVP]
Sources de la même categorie
Commentaires
Discussions en rapport avec ce code source
|
CalendriCode
| | | L | M | M | J | V | S | D |
| | 1 | 2 | 3 | 4 | 5 | 6 |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 | | | |
|
Téléchargements
Logiciels à télécharger sur le même thème :
|
|