繁体   English   中英

SQL Server注销/终止查询中已登录用户的会话

[英]SQL Server Log out / Terminate session of logged in user in a query

不用讨论为什么要这样做,是否可以(我将使用登录触发器)注销对特定数据库没有写权限的用户?

我可以找到当前登录的用户权限,我只需要知道是否可以注销他们?

DECLARE @HasPermission bit

SELECT @HasPermission =  HAS_PERMS_BY_NAME('RTEST2.dbo.TestTableSize', 'OBJECT', 'INSERT');

IF @HasPermission = 0
   SELECT 'Now this is where id want to log out the user'

通过在登录触发器中执行ROLLBACK可以防止用户登录 正如@DavidBrowneMicrosoft在其评论中提到的那样,使用PRINTRAISERROR语句来记录登录失败的原因也是一种好习惯。 该消息不会返回给客户端,但对于故障排除很有用。

IF @HasPermission = 0
BEGIN
    PRINT 'User does not have permissions to login';
    ROLLBACK;
END;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM