Gereksinim, oturum açma Windows Kimlik Doğrulama veya SQL Server kimlik doğrulaması olduğunda hangi işletim sistemi kullanıcısı bir SQL Server veritabanında oturum açacağını bulmaktır. Bilmeniz gerekenler WHO (istemci bilgisayardaki AD hesabı) hangi db hesabının hangi uygulama ile SQL Server'da oturum açmış olduğunu kullandı.İstemci OS kullanıcı adını SQL Server'dan alın
sorun Örneğin.
bir SQL Server kimlik doğrulama kullanıcı günlükleri, bir dizüstü bilgisayar, laptop123 benim AD hesabı Alan adı kullanıldığında ben istemcinin işletim sistemi kullanıcı adı alamadım olduğunu. Alan adı Stackoverflow
, kullanıcı adı developer1
, DB hesabı (SQL Server kimlik doğrulaması) ERPAPPUSER
ile bağlı Microsoft SQL Server Management Studio'yu başlattı. Etki alanı kullanıcısını Stackoverflow/developer1
kaydetmem gerekiyor.
ERPAPPUSER
kullanıcının Microsoft SQL Server Management Studio'yu kullanarak laptop123
oturumunu açtığı bilgileri kolayca edinebilirim.
Bir veritabanı oturum açma tetikleyicisi oluşturdum ve istemci kullanıcı adı, ana makine adı, oturum açma zamanı, uygulama adı vb. Elde edebilirim, ancak istemci işletim sistemi kullanıcı adı bulamadı.
CREATE TRIGGER DB_ServerLogon
ON ALL SERVER
WITH EXECUTE AS 'sa'
FOR LOGON
AS
BEGIN
INSERT INTO audit_history.dbo.db_logon_history
SELECT
ORIGINAL_DB_NAME(),
ORIGINAL_LOGIN(),
@@SPID,GETDATE(),
HOST_NAME(),
APP_NAME()
END
GO
Çok teşekkürler!
- '' EXECUTE AS 'olarak' 'eklendi, aksi takdirde db_logon_history öğesine erişimi olmayan tüm kullanıcılar giriş yapamazlar.
SQL Server'da oturum açtığınızda, bir etki alanı hesabıyla oturum açmıyorsunuz ve etki alanı hesabı SQL Server'a aktarılmıyor. Herhangi bir cihazla giriş yapabilirsiniz. Güvenilir güvenliği kullanırken istemci ayrıntılarını SQL Server'a iletmek isterseniz, bunu ön uçtan bir parametre olarak iletmeniz gerekir. yani saklanmış prosedürü veya benzerlerini kullanmak. Bu arada iyi bir soru. ve iyi sordu. – cameront