[转帖]SQLSERVER 使用触发器实现 禁用sa用户 在非本机登录

原贴地址:

https://blog.csdn.net/reblue520/article/details/51580102

具体的方法为:

创建一个触发器

CREATE TRIGGER forbiddensa
ON ALL SERVER WITH EXECUTE AS ‘sa‘
FOR LOGON
AS
BEGIN
--选择sa用户进行限制:
IF ORIGINAL_LOGIN()= ‘sa‘
--允许sa在本机登录“”
AND
(SELECT EVENTDATA().value(‘(/EVENT_INSTANCE/ClientHost)[1]‘, ‘NVARCHAR(15)‘))
NOT IN(‘<local machine>‘,‘127.0.0.1‘,‘10.24.15.15‘)
     ROLLBACK;
END;

以及 查看 sqlserver的链接信息

SELECT
a.[session_id],a.[login_time],a.[host_name],
a.[original_login_name],b.[client_net_address]
FROM MASTER.sys.dm_exec_sessions a
INNER JOIN MASTER.sys.dm_exec_connections b
ON a.session_id=b.session_id

删除这个触发器的语法

drop trigger forbiddensa on ALL server 
查看触发器的两个视图
数据库范围的DDL触发器用sys.triggers
服务器范围的DDL触发器用sys.server_triggers

官网的解释

# 我还没看

https://msdn.microsoft.com/zh-cn/library/ms176054(v=sql.100).aspx

原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/9241608.html

时间: 2024-08-29 14:46:13

[转帖]SQLSERVER 使用触发器实现 禁用sa用户 在非本机登录的相关文章

sqlserver sa用户登陆失败的解决办法

sqlserver sa用户登陆失败的解决办法 如下图以此模仿: 1.右键-属性 2.找到安全: 3.勾选如图: 4.sa用户密码重置: 5.服务重启:

SQLServer创建触发器,更新表

在SQLServer,触发器,插入.更新.删除状态: CREATE TRIGGER t_inms_alarms ON [PHS].[dbo].[AlarmCurrent] FOR INSERT, DELETE AS DECLARE @rows int SELECT @rows = @@rowcount IF @rows = 0 return --如果表是插入,则同步更新AlarmsMiddleTbl IF EXISTS(SELECT 1 FROM inserted) AND NOT EXISTS

在SQLServer使用触发器实现数据完整性

1.实现数据完整性的手段 在sqlserver中,在服务器端实现数据完整性主要有两种手段:一种是在创建表时定义数据完整性,主要分为:实体完整性.域完整性.和级联参照完整性:实现的手段是创建主键约束.唯一键约束.检查约束.默认值约束和各种级联完整性约束.另一种是通过编写触发器语句来实现,通过定义触发条件和编写触发后执行语句,来实现对数据表操作的各种约束. 2.触发器的概念 触发器是一种特殊的存储过程.通常用于实现强制业务规则和数据完整性.触发器是通过事件触发而由系统自动执行.主要体现在它在插入.删

SqlServer sa 用户登录失败的解决方法

一.控制面板->服务->MS SQL SERVER->登录-->本地系统帐户-->重新启动MS SQL SERVER用windows验证登陆查询分析器-->执行 sp_password null,sa新密码,'sa' 二."无法连接到服务器,用户xxx登陆失败"该错误产生的原因是由于SQL Server使用了"仅 Windows"的身份验证方式,因此用户无法使用SQL Server的登录帐户(如 sa )进行连接.解决方法如下所示

SQLSERVER sa 用户密码修改的方法

本次驱动人生病毒的收获 1. 偷懒总会有报应. 2. 应用(数据库或者是web应用nginx等.)都不要使用最高级别权限用户来使用 虽然这样的环境问题最少. 3. 密码还是需要定期更换的,虽然有成本,但是也是有意义的. 1. 使用查询分析器连接数据库 身份验证 可以使用 windows 身份验证. 2. 登录之后 注意位置 在sa用户下面点击属性 3. 进行修改密码  可以 去掉 那个 密码强制策略 4. 使用 之前密码登录尝试 5. 使用新密码登录尝试 成功建立连接. 原文地址:https:/

安装SQL SERVER开启SA用户登录的方法

家庭安装SQL SERVER开启SA用户登录的方法:(切记按照网址操作完后,最后一定要在"管理工具"的"服务"里把"SQL SERVER(MSSQL SERVER)"停用一次后再启动,否则依旧无法使用SA登录) 在新安装SQL,用SA用户登录数据库的时候出现如下的错误: 之前装过SQL7.0, SQL2000, SQL2005版的.2008版的,好像没有这复杂啊,百度了下找到了一个解决方案,归纳一下:这个错误一般由三个原因引起,登录方式设置错误.

SQL Server 2012 sa 用户登录 18456 错误

最近想研究下SQL SERVER2012 Enterprise版本的数据库,听说功能很强大.我是在win7上安装的,安装的过程很顺利,我在用"Windows 身份验证"时,一切OK,但是在用SA用户登录数据库的时候出现如下的错误: 之前装过SQL7.0, SQL2000, SQL2005版的.2008版的,好像没有这复杂啊,百度了下找到了一个解决方案,归纳一下:这个错误一般由三个原因引起,登录方式设置错误.sa设置错误和IP方式是否开启,下面依次解决这三个问题. 解决方案: 一.登录方

Sql Server怎样设置sa用户登录

首先,我门打开数据库管理工具,用windows方式登录,windows只能本机登录,这样远程的客户端就登录不了,我们目前就是为了开启sa登录,使远程客户端也能访问数据库,看下图,windows方式登录成功 依次打开安全性-登录名,我们可以看到系统内置sa用户,但处于被禁用状态 右击sa用户并选择属性,在属性界面的“常规中设置密码”,在“状态”中将登录设为开启 这是say用户就启用了,但我们还不能登录,会提示登录失败,错误消息18456 右击数据库的连接并选择属性,在安全性中默认是windows模

win7访问共享文件,登录失败:禁用当前用户 解决方法

访问win7上面的共享文件时,出现登陆失败:禁用当前用户的错误 原因分析: 1.Win7操作系统,默认禁用了管理员和来宾账户 2.无法访问共享的机器,访问共享文件时使用的是默认的管理员,没有设置密码 由于win7共享服务器端的同名账户是禁用的,当客户端还用同名账户(普遍来说都是administrator账户同名)去验证的时候,服务器返回这个账户禁止,客户端就不提示用户输入用户名和密码,直接终止就了共享访问..... 解决办法:方法1:最简单的解决方法就是--本机建立一个新账户,这样通过新账户而不