データベース上で一意のセッションIDを永久に取得または作成する方法を知りました。一意のセッションIDを作成する方法(SSPIDとは異なります)
@SSPID
は一意ではありません。誰かがログアウトすると再利用されます。
データベース上で一意のセッションIDを永久に取得または作成する方法を知りました。一意のセッションIDを作成する方法(SSPIDとは異なります)
@SSPID
は一意ではありません。誰かがログアウトすると再利用されます。
評判が不十分で、これは解答ではない理由です。
SPID + GETDATE()を使用すると、年月を経ても一意の識別可能なセッションを取得できます。
しかし、どうすれば作成できますか?そして、私は1つのセッサンの間に同じように保つのですか?一意のIDは、ログイン中に作成する必要があり、その後、セッション全体で同一である必要があります。私が 'GetDate()'をもう一度呼び出すと、もちろん変更されます。 – askolotl
ログイン時にのみ固有のIDを作成します。同じセッションで 'GETDATE()'をもう一度呼び出すのはなぜですか? – freakyhat
OK、ログイン中にIDを作成するとします。その後、いくつかの更新トリガーでそれが必要になります。または他のproceudre。もう一度同じIDを取得するにはどうすればいいですか? – askolotl
LOGONトリガーを使用して一意のIDを生成し、表に挿入できます。あなたのアプリケーションはこのIDを検索して使用することができます
CREATE TABLE session_audit
(
uid uniqueidentifier not null,
login_name varchar(100),
login_dt datetime,
session_id smallint,
hostname nvarchar(128),
constraint pk_session_audit primary key (uid)
)
CREATE TRIGGER session_audit_trigger
ON ALL SERVER FOR LOGON
AS
BEGIN
IF SUSER_SNAME() not in ('sa') -- do not log for sa
BEGIN
INSERT INTO Test.dbo.session_audit (uid, login_name, login_dt, session_id, hostname)
SELECT NEWID(), SUSER_SNAME(), GETDATE(), @@SPID, HOST_NAME();
END
END;
GO
ENABLE TRIGGER session_audit_trigger ON ALL SERVER;
ありがとうございます(投票はできません、15回の回答が必要です)。それは私が探している方向に行く。 – askolotl
何が必要ですか? GUIDは「ユニーク」とみなされるものを作成する通常の方法です –
@ AllanS.Hansenログイン時にGUIDを取得するにはどうすればよいですか?データベースのトリガー?アイデアは、さまざまなユーザーアクションを記録するために使用できる一意のIDを持つことです。 – askolotl
セッションごとに永続的なIDまたは変更をしたいですか? – Squirrel