用伺服器觸發器統計登入情況

2021-08-13 16:11:28 字數 1633 閱讀 5882

參考: msdn  

create trigger (transact-sql)

登入觸發器

use [master]

go--1. 建立登入日誌表

if object_id('sqlserver_login_log') is not null

drop table sqlserver_login_log

gocreate table sqlserver_login_log(

id int identity(1,1) primary key,

loginame varchar(50) not null,

logintime datetime not null default(getdate()))go

--2. 刪除觸發器,再建立觸發器

if exists(select 1 from master.sys.server_triggers as st where st.name='trig_server_login')

begin

drop trigger [trig_server_login] on all server

endgo

--建立登入觸發器

create trigger trig_server_login

on all server

--with execute as 'login_test'

for logon

as

begin

insert into sqlserver_login_log(loginame)

values(original_login());

end;

go--3. 建立測試賬號

if exists(select * from sys.syslogins as s where name='login_test')

begin

drop login login_test

endgo

create login login_test with password=n'login_test', default_database=[master], check_expiration=off, check_policy=off;

if exists(select 1 from sys.database_principals where name='login_test' and type_desc='sql_user')

drop user login_test

go

create user login_test for login login_test

go--4. 給測試賬號授權

-- 特別需要注意的是:賬號必須對日誌表有 insert 許可權!否則將無法登入

grant view server state to login_test;

grant select,insert on master.dbo.sqlserver_login_log to login_test;

go--在相關賬號登入之後,可以查到登入的資訊

select * from sqlserver_login_log as s

用程式登入伺服器 急急

用程式登入伺服器 急急 delphi windows sdk api 在伺服器上已建立相應的使用者名稱和使用者密碼,這些都是已知的.現我想用delphi程式實現登入指定的計算機.在這兒有兩種情況 一種是域方式登入.一種是網路組方式登入.請寫出相應的原始碼.路過一下 你要完全用delphi實現有一點難...

mysql 用觸發器記錄操作

mysql 不能在乙個觸發器中進行insert,update,delete操作,需分別建三個觸發器 insert觸發器 delimiter create trigger tri city insert after insert on t xfw city foreach rowbegin inser...

mysql用觸發器同步表

一 先複製表 create table tytj select from tongji where user 0 and date 2016 09 26 or date 2016 09 27 二 建立插入資料時的 觸發器 在phpmyadmin 執行時記得要修改語句定界符為 create trigg...