Användarproblem vid DB-flytt

Databaser & SQL

7 svar · 419 visningar · startad av ironhead

Medlem sedan mars 20011 346 inlägg
Trådstart#1

Hej!

Jag skulle flytta en databas mellan 2 MSSQL 2000 servrar.
Tog backup -> restore på databaserna.
Användaren 'test' följde med som användare och jag försökte
använda

sp_dropuser 'test'

för att kunna skapa denna användaren igen, men fick felmeddelandet:

The selected user cannot be dropped because the user owns objects.

Hur får man bort denna illvilliga användare :)

Medlem sedan juni 200032 967 inlägg
#2

Du får nog försöka ta reda på vilka objekt användaren äger, och byta ägare på dem.

Medlem sedan mars 20011 346 inlägg
#3

@nders skrev:

Du får nog försöka ta reda på vilka objekt användaren äger, och byta ägare på dem.

Var kan man se dessa objekt? Kör MMC m. SQL Ent Mgr.

Medlem sedan feb. 200112 078 inlägg
#4

ironhead skrev:

Hej!

Jag skulle flytta en databas mellan 2 MSSQL 2000 servrar.
Tog backup -> restore på databaserna.
Användaren 'test' följde med som användare och jag försökte
använda

sp_dropuser 'test'

för att kunna skapa denna användaren igen, men fick felmeddelandet:

The selected user cannot be dropped because the user owns objects.

Hur får man bort denna illvilliga användare :)

Bindningar till gammal data, som följer med vid backupen om du valt att backupa roller/användare.

1. Kryssa i alternativet "Allow modifications to be made directly to the system catalogs" på serverns inställningsflik "Properties > Server settings"
2. Radera användaren ur den aktuella databasens systemtabell 'sysusers'
3. Lägg till användaren i databasen igen
4. Kryssa ur rutan under punkt 1

Du bör vara försiktig om det är en produktionsserver, fixa med systemtabellerna kan ställa till problem om man gör fel.

Medlem sedan mars 20011 346 inlägg
#5

Försökte tabort användaren från 'sysusers' med felmeddelandet:

Ad hoc updates to system catalogs are not enabled.
The system administrator must reconfigure SQL Server to allow this.

Medlem sedan feb. 200112 078 inlägg
#6

Kryssade du verkligen i alternativet, enligt punkt 1?

Medlem sedan feb. 200112 078 inlägg
#7

Vid närmare eftertanke, kanske det är annorlunda i SQL Server 2000, i 7.0 räcker det med kryssrutan.

Om du nu vill kan du ju göra såhär också;

sp_configure 'allow updates', 1
go
reconfigure with override
go

Testa sen att radera användaren. Sen får du köra igen, med 0 istället, för att reset'a själva "allow updates"-parametern.

Som sagt, var försiktig!

Medlem sedan mars 20011 346 inlägg
#8

äh! Gjorde det lite enklare för mig:
1. Tog db:n offline
2. Skapade tom motsvarande db
3. skapade användaren
4. gjorde en DTS-export

funkade bra...

255 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)