Hey,
keine Ahnung, ob das für jemanden nützlich sein könnte, aber ich release es einfach mal.
Es ist ein simples Whitelist-System.
In TWHITELIST ist festgelegt, ob eine Whitelist benutzt wird, oder nicht.
0 = keine Whitelist
1 = Whitelist
In TWHITELISTUSER müssen die UserIDs eingetragen werden, die verbinden dürfen, bei aktiver Whitelist.
Dafür muss in der TLogin ein kleiner Codeblock hinzugefügt werden.
Code:
DECLARE @bIsWhitelist TINYINT
SELECT TOP 1 @bIsWhitelist = bIsWhitelist FROM TWHITELIST
IF(@bIsWhitelist = 1)
BEGIN
SELECT TOP 1 dwUserID FROM TWHITELISTUSER WHERE dwUserID = @dwUserID
IF(@@ROWCOUNT = 0)
BEGIN
/* Not whitelisted */
RETURN 4 /* 4 = Wrong version */
END
END
Am besten ist es, wenn dieser Block unter die Prüfung nach dem Benutzernamen o.Ä. eingefügt wird.
Beispiel:
Code:
/* Prüfung auf Benutzername */
SELECT TOP 1 @dwUserID = dwUserID, @bCheck = bCheck FROM TACCOUNT WHERE szUserID = @szUserID
IF @@ROWCOUNT = 0
BEGIN
/* Not found user */
RETURN 1
END
/* Whitelist */
DECLARE @bIsWhitelist TINYINT
SELECT TOP 1 @bIsWhitelist = bIsWhitelist FROM TWHITELIST
IF(@bIsWhitelist = 1)
BEGIN
SELECT TOP 1 dwUserID FROM TWHITELISTUSER WHERE dwUserID = @dwUserID
IF(@@ROWCOUNT = 0)
BEGIN
/* Not whitelisted */
RETURN 4 /* 4 = Wrong version */
END
END
SQL-Dateien müssen in der TGLOBAL_GSP ausgeführt werden mit Rechtsklick -> "Execute SQL file". Danach Rechtsklick -> "Refresh" und die Tabellen sind da.