Você pode, de fato, fazer o script de senhas do sql server 2000 e importá-las para o sql server 2008, de modo que elas sejam reconhecidas como senhas maiúsculas. Aqui estão algumas leitura em segundo plano que serão úteis para entender os hashes de senha do sql server, para que você possa acompanhar com o exemplo.
As senhas do SQL Server 2000 na verdade eram insensíveis a maiúsculas e minúsculas, como descrito em este discurso. Mesmo assim, os hashes do sql server armazenam uma cópia sensível a maiúsculas e minúsculas da senha, de modo que quando você migra hashes de senha para o sql server 2005/2008, suas senhas são sensíveis a maiúsculas e minúsculas.
Para testar isso, você pode executar o seguinte no seu SQL Server 2000 Server:
exec sp_addlogin @loginame= 'usera' , @passwd='password'
acessando o SQL Server 2000 como o user funciona com 'PASSWORD', mesmo que não deva. Para migrar o usera para o SQL Server 2005/2008, podemos usar o seguinte para copiar o login mantendo o sid & hash de senha:
select
'exec sp_addlogin @loginame ='''
+ [name] + ''''
+ ', @passwd= '
+ master.dbo.fn_varbintohexstr([password])
+ ', @sid= '
+ master.dbo.fn_varbintohexstr([sid])
+ ', @encryptopt = ''skip_encryption_old'''
from sysxlogins where name='usera'
Você receberá a seguinte saída (com sid & hash diferente, é claro):
exec sp_addlogin @loginame ='usera',
@passwd= 0x01004409eb54922c0cd2bedbad754f37afad4053bdadf719ff80c8a8abf5801b813114be6ba0c2c8543b2db77b33,
@sid= 0x06cf56eb108a12428712f8b7c66ca1cd, @encryptopt = 'skip_encryption_old'
O que você pode fazer é executar algum 'processamento' no hash da senha antes de importá-lo para 2008, para que o segundo hash maiúsculo substitua o hash sensível a maiúsculas e minúsculas. Isso significará que todas as suas senhas estão em maiúsculas. Usando a senha acima, você pode executar a seguinte operação, que eu fiz aqui no t-sql:
declare @old_passwd char(94) -- original hash from sql server 2000
declare @new_passwd char(94) -- new upper case password for sql server 2008
declare @cs_hash char(40) -- case sentive part
declare @ci_hash char(40) -- case insentive part
declare @salt char(14)
set @old_passwd = '0x01004409EB54922C0CD2BEDBAD754F37AFAD4053BDADF719FF80C8A8ABF5801B813114BE6BA0C2C8543B2DB77B33'
set @salt = SUBSTRING(@old_passwd,1,14)
set @cs_hash = SUBSTRING(@old_passwd,15,40) -- not used, but here for understanding
set @ci_hash = SUBSTRING(@old_passwd,55,40)
set @new_passwd = @salt + @ci_hash + @ci_hash
SELECT @new_passwd
usando esta @new_password como o parâmetro @passwd para sp_addlogin significa que a senha é reconhecida como maiúscula!