Wie testen Sie für die Existenz eines Benutzers in SQL Server?
-
21-08-2019 - |
Frage
Ich möchte einen Benutzer in einer SQL Server-Skript fallen, aber ich werde die Existenz testen müssen zuerst oder ich Skriptfehler erhalten. Wenn Tabellen oder gespeicherte Prozeduren fallen, überprüfe ich die sysobjects Tabelle wie folgt:
IF EXISTS (
SELECT *
FROM sysobjects
WHERE id = object_id(N'[dbo].[up_SetMedOptions]')
AND OBJECTPROPERTY(id, N'IsProcedure') = 1
)
Drop Procedure up_SetMedOptions;
GO
Was ist die logische Folge für einen Benutzer zur Überprüfung? Beachten Sie, dass ich nicht mit dem Server über eine Datenbank-Anmeldung am gefragt! Die Frage bezieht sich auf einen Benutzer in einer bestimmten Datenbank.
Lösung
SSMS Skripte es auf folgende Weise:
Für SQL 2005/2008:
IF EXISTS (SELECT * FROM sys.database_principals WHERE name = N'username')
DROP USER [username]
Für SQL 2000:
IF EXISTS (SELECT * FROM dbo.sysusers WHERE name = N'username')
EXEC dbo.sp_revokedbaccess N'username'
Andere Tipps
In SQL 2005:
select * from sys.sysusers
In SQL 2000:
select * from sysusers
Der folgende Code für mich gearbeitet.
IF EXISTS (SELECT * FROM sys.syslogins WHERE name = N'MyUserName')
DROP LOGIN [MyUserName]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow