2011-02-07 12 views
5

Tenemos una gran cantidad de DBUsers en nuestra base de datos. Tenemos que limpiar todos esos usuarios de la base de datos. Cuando traté de dejar caer el usuario de la base de datos que falló debido al error siguienteConsulta generalizada para determinar si el usuario de la base de datos posee un esquema

Msg 15138, nivel 16, estado 1, línea 2 El director de base de datos posee un esquema en la base de datos, y no puede ser caído.

Así que encontré la solución para esto, es decir, cambié la propiedad del esquema a dbo. Ahora puedo caer el usuario mediante el siguiente guión

SELECT name FROM sys.schemas WHERE principal_id = USER_ID('myUser') 
ALTER AUTHORIZATION ON SCHEMA::SchemaName TO dbo 
GO 
DROP USER myUser 

Pero quiero dejar un número de usuarios por lo que necesita para generar la escritura generalizada. estoy usando SQL Server 2008

+1

Se debe especificar la base de datos que está utilizando. –

Respuesta

7

Esto le dará una lista completa de los esquemas en contra de los usuarios, que son sus propietarios:

SELECT db.name AS [DB User], s.name AS [Schema] 
FROM sys.database_principals db 
JOIN sys.schemas s ON s.principal_id = db.principal_id 
Cuestiones relacionadas