• Imprimir

 

/*

O codigo abaixo  lista todos os usuarios do banco que não constam como usuarios da instancia do banco.

Os famosos usuarios fantasmas.

Isto ocorre quando deletamos o usuario na pasta Security mas não deletamos no banco ou quando o banco e restaurado 

para outro ambiente.

*/

use  << SEU BANCO >>

SELECT name

FROM sys.database_principals

WHERE

type IN ('S', 'U', 'G')

    AND name NOT LIKE '##%'

and

 

name not IN (

    SELECT name

    FROM sys.server_principals 

    WHERE type IN ('S', 'U', 'G')

    AND name NOT LIKE '##%'

)

 

/*

Vamos então acrescentar o 'DROP USER '

E pronto limpamos os usuarios. :-) 

*/

 

use  << SEU BANCO >>

 

SELECT 'DROP USER ',name

FROM sys.database_principals

WHERE

type IN ('S', 'U', 'G')

    AND name NOT LIKE '##%'

and

 

name not IN (

    SELECT name

    FROM sys.server_principals 

    WHERE type IN ('S', 'U', 'G')

    AND name NOT LIKE '##%'

)