![]() |
Datenbank: SQL2000 • Zugriff über: ADO
USERNAME für LOG Datei Übergeben SQL 2000
Hallo,
ich habe habe auf dem SQL2000 Server eine Rolle und einen dazu gehörigen User eingetragen. Ich möchte nun, dass der User sich an der Datenbank mit seinem Usernamen und Passwort einlogged. Wenn dieser User nun einen Insert über einen Delphi-Event macht, soll in der Row der Username eingetragen werden. Hier meiner SP:
Delphi-Quellcode:
Leider wird immer nur der DBO User eingetragen. Wie kann ich eine eine Anmeldung der User mit Name/PW ermöglichen und auf der Datenbank bei einer SP diesen Usernamen benutzen?
CREATE PROCEDURE [SP_NEW_ADRESSTYP]
( @ID INT =NULL, @ADRT_WERT VARCHAR(30) =NULL, @RETURN_MESSAGE VARCHAR(150) OUTPUT, @RETURN_ID INT OUTPUT ) AS SET NOCOUNT ON BEGIN TRANSACTION BEGIN IF @ID = 0 BEGIN INSERT INTO cs_AdressTyp ( [ADRT_WERT], [CREATED], [MODIFIED], [AKTIONUSER] ) VALUES ( LTRIM(RTRIM(@ADRT_WERT)), (getdate()), (getdate()), user ) END ELSE BEGIN UPDATE cs_AdressTyp SET [ADRT_WERT] = LTRIM(RTRIM(@ADRT_WERT)), [MODIFIED] = (getdate()), [AKTIONUSER] = user WHERE [ADRT_ID] = @ID END END ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- IF @@error <> 0 BEGIN EXEC SP_GET_MESSAGE '101','D', @RETURN_MESSAGE OUTPUT ROLLBACK TRANSACTION RETURN END ELSE BEGIN EXEC SP_GET_MESSAGE '100','D',@RETURN_MESSAGE OUTPUT SET @RETURN_ID = @@identity COMMIT TRANSACTION RETURN END ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- SET NOCOUNT OFF GO LG Oliver |
Re: USERNAME für LOG Datei Übergeben SQL 2000
Wenn du dich mit SQL-Server Authentification anstatt mit Windows Auth. anmeldest verwendest du in jedem Fall den SQL-Benutzer.
Aktuelle Infos über die aktive Session findest du in der Master DB
SQL-Code:
SELECT nt_username
, loginame FROM master.dbo.sysprocesses WHERE spid = @@SPID Du kannst dir auch flink eine Funktion bauern, die dir den gewünschten Usernamen als Rückgabewert liefert...
SQL-Code:
bzw.
CREATE FUNCTION SYSF_GetNtUser()
RETURNS Varchar(128) AS BEGIN DECLARE @RET VARCHAR(128) SELECT @RET = nt_username FROM master.dbo.sysprocesses WHERE spid = @@SPID IF @RET IS NULL RETURN '<unbekannter Benutzer>' RETURN @RET END
SQL-Code:
CREATE FUNCTION SYSF_GetDbUser()
RETURNS Varchar(128) AS BEGIN DECLARE @RET VARCHAR(128) SELECT @RET = loginame FROM master.dbo.sysprocesses WHERE spid = @@SPID IF @RET IS NULL RETURN '<unbekannter Benutzer>' RETURN @RET END Schöne Grüße, Jens :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz