在项目中,如何使用SQL Server数据库的登录触发器?
我们这时要设计登录触发器来进行限制。
举例:
如果登录名login_test已经创建了一个用户会话,登录触发器将拒绝由该登录名启动的SQL Server登录尝试。
USE master --只有在master 数据库才可以对登录名赋权
GO
CREATE LOGIN login_test WITH PASSWORD=‘123456‘; --创建一个用户
GO
GRANT VIEW SERVER STATE TO login_test; --赋权
GO
ALTER TRIGGER connection_limit_trigger --创建触发器
ON ALL SERVER WITH EXECUTE AS ‘login_test‘
FOR LOGON
AS
BEGIN
--如果当前登录名等于login_test 同时连接数超出。
IF ORIGINAL_LOGIN()=‘login_test‘ AND
(SELECT COUNT(*) FROM sys.dm_exec_sessions
WHERE is_user_process=1 AND
original_login_name=‘login_test)>3
ROLLBACK;
END;
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。