如何控制用户访问数据库

本文介绍如何在 SQL Server 中创建数据库 AuditDb 和表 ServerLogonHistory 以记录所有登录事件。通过触发器 Tr_ServerLogon 实现自动记录用户登录时间等信息,并提供了一种方法来限制用户从特定应用程序或登录访问 SQL Server。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用SQL Server Log On trigger:

 

CREATE DATABASE AuditDb

 GO

 USE AuditDb

 GO

 /* Create AuditTable */

 CREATE TABLE ServerLogonHistory

 (SystemUser VARCHAR(512),

 DBUser VARCHAR(512),

 SPID INT,

 LogonTime DATETIME)

 GO

 /* Create LogonTrigger */

 CREATE TRIGGER Tr_ServerLogon

 ON ALL SERVER FOR LOGON

 AS

 BEGIN

 INSERT INTO AuditDb.dbo.ServerLogonHistory

 SELECT SYSTEM_USER,USER,@@SPID,GETDATE()

 END

 GO

 

用户登录后查看监控表:

 

 

因为我们可以监控到用户登录SQL Server的情况,所以我们就可以限制用户的访问,参考下面的文章:How to prevent users from accessing SQL Server from any application or any login expect your main application & its login:http://thesqldude.com/2012/04/07/how-to-prevent-users-from-accessing-sql-server-from-any-application-or-any-login-expect-your-main-application-its-login/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值