Re: Verwaiste Benutzer
From: Ralf Dietrich (du.sollst.mir.keinen.spam.schicken_at_t-online.de)
Date: 03/13/04
- Next message: Ralf Dietrich: "Re: Trigger oder Function?"
- Previous message: Ralf Dietrich: "Re: logfile verkleinern"
- In reply to: Oliver Kitz: "Verwaiste Benutzer"
- Next in thread: anonymous_at_discussions.microsoft.com: "Verwaiste Benutzer"
- Messages sorted by: [ date ] [ thread ]
Date: Sat, 13 Mar 2004 22:19:00 +0100
Hallo Oliver,
Oliver Kitz wrote:
> Hallo NG,
> bei der Wiederherstellung einer DB auf einem neuen SQL-
> Server sind zwar die Benutzername auf DB-Ebene vorhanden,
> jedoch fehlt die Zugriffsberechtigung auf den Server.
> Muss ich jetzt tatsächlich allen Benutzern neuen Zugriff
> auf den Server erteilen ? Oder gibt es eine Möglichkeit
> den Benutzern der DB Zugriff auf den Server zu geben. Der
> alte Server ist übrigens futsch. Hat mir der System Admin
> abgeschossen !
> MfG
> Oliver
probiere mal einen Skript in dieser Art aus:
-- Vorbereitung
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
EXEC sp_configure 'allow updates', 1
RECONFIGURE WITH OVERRIDE
/*
Wenn Du noch ein Backup der alten master-datenbank hast:
restore der alten master als <master_alt> und dann folgender Skript
INSERT master.dbo.sysxlogins (spaltenliste)
SELECT (spaltenliste)
FROM master_alt.dbo.sysxlogins
WHERE name NOT IN (SELECT name FROM master.dbo.sysxlogins)
-- anschließend zur Nachbereitung
-- sonst hier weiterlesen
*/
-- Sind das die verwaisten Benutzer?
SELECT name
FROM <deine Datenbank>.dbo.sysusers
WHERE uid BETWEEN 5 AND 16000
/* nur als Info
EXEC sp_grantlogin (wenn Du NT-Konten hattest, dann bist Du sehr glücklich,
weil die SID's aus master und user-db übereinstimmen sollten) sonst
EXEC sp_addlogin (für die SQL-Konten)
*/
-- nun ein kleiner Cursor
DECLARE @user sysname
DECLARE @sidin varbinary(85)
DECLARE losgehts CURSOR
FOR SELECT name, sid
FROM <deine Datenbank>.dbo.sysusers
WHERE uid BETWEEN 5 AND 16000
OPEN losgeht
FETCH NEXT FROM losgehts INTO @user, @sidin
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC sp_addlogin @loginname = @user, @sid = @sidin
-- bzw. EXEC sp_grantlogin @loginame = @user
FETCH NEXT FROM losgehts INTO @user, @sidin
END
CLOSE losgehts
DEALLOCATE losgehts
-- Nachbereitung
EXEC sp_configure 'allow updates', 0
RECONFIGURE WITH OVERRIDE
EXEC sp_configure 'show advanced options', 0
RECONFIGURE
-- nun solltest Du nur noch daran denken, dass die (SQL-)Benutzer im Moment
kein Passwort haben. in der sp_addlogin-Proc kannst Du aber eins mitgeben,
wenn Du willst
Viel Erfolg!
-- CU Ralf --------------------------- www.damisys.de ---------------------------
- Next message: Ralf Dietrich: "Re: Trigger oder Function?"
- Previous message: Ralf Dietrich: "Re: logfile verkleinern"
- In reply to: Oliver Kitz: "Verwaiste Benutzer"
- Next in thread: anonymous_at_discussions.microsoft.com: "Verwaiste Benutzer"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|