在登录触发器错误情况下连接SQL Server的方法
错误如图所示:
图一
如果不能很好地执行登录触发器,那么将会导致登录失败。
例如,如果创建了这个触发器,那么就可以设计下面的代码来达到失败的目的。
代码如下:
CREATE TRIGGER BadLogonTrigger ON ALL SERVER FOR LOGON
AS
BEGIN
INSERT INTO BadDB.dbo.SomeTable VALUES ('Test');
END;
GO
没有一个数据库称为BadDB,这意味着在BadDB内也没有一张表叫SomeTable。因此,任何登录到该服务器的正常尝试都会失败,因为这个触发器涉及到一个不存在的对象。为了纠正这一问题,你也需要:
使用一个现有的建立连接,该连接拥有合适的权限。
使用专用管理员连接(DAC)连接SQL Server。
如果你现有的一个连接可以删除触发器或者使触发器不可用,那么请使用现有的连接来纠正这个问题。但是可能在一些情况下,你的连接没有这种功能,那么你需要依赖专用管理员连接。
默认情况下,这个专用管理员连接只能在本地服务器中使用。这就意味着,你需要通过登录到本地计算机或者使用另一种方式如远程桌面来连接。一旦你登录了,你就可以使用SQLCMD或者SSMS。
如果你使用SQLCMD,你要通过该专用管理员连接指定一个-A开关来连接。如果你通过SSMS连接,那么要确定通过在服务器名前面指定ADMIN:来连接,如图二。
图二
产生这种现象的原因是SQL Server通过专用管理员连接把对连接的检查和资源减到最少。当一个或多个进程消耗一个SQL Server而造成登录不能正常进行时,这种方法就给数据库管理员一个“后门”。当通过DAC连接时,SQL Server不做的一件事是执行任何登录触发器。因此,你可以使用DAC,你不会被这个不好的触发器所阻碍。然后如果需要,你可以使这个触发器不可用或者删除这个触发器。
例如,一旦通过DAC连接,我就可以执行下面的命令来完全摆脱这个触发器:
代码如下:
DROP TRIGGER BadLogonTrigger ON ALL SERVER;
GO
相关推荐
-
SQL Server 2012 sa用户登录错误18456的解决方法
最近想研究下SQL SERVER2012 Enterprise版本的数据库,听说功能很强大.我是在win7上安装的,安装的过程很顺利,我在用"Windows 身份验证"时,一切OK,但是在用SA用户登录数据库的时候出现如下的错误: 之前装过SQL7.0, SQL2000, SQL2005版的.2008版的,好像没有这复杂啊,百度了下找到了一个解决方案,归纳一下:这个错误一般由三个原因引起,登录方式设置错误.sa设置错误和IP方式是否开启,下面依次解决这三个问题. 解决方案: 一.登录方
-
SQL Server 2008登录错误:无法连接到(local)解决方法
在一些朋友安装完SQL Server 2008之后大多会遇到连接出错的问题.特别对于我们这样的新手而言简直郁闷的要死,好不容易装玩了又出现了问题.此篇文章意在解决安装步骤没有问题,但安装后无法登录的问题. 在解决问题之前请朋友们打开服务窗口,看"SQL Server"主服务是否打开,如下图. 若服务已经打开还是用"SQL Server 身份验证"和"Windows 身份验证"都无法登录请看下面的步骤. 往往这时,服务器类型我们选择了"数
-
SQL错误:相关的信息为:用户 sa 登录失败。原因: 未与信任 SQL Server 连接相关联。
请打开企业管理器,选(local),右键属性---安全性 请检查是否选中了SQL Server 和Windows 方式验证.
-
SQL Server成功与服务器建立连接但是在登录过程中发生错误的快速解决方案
最近在VS2013上连接远程数据库时,突然连接不上,在跑MSTest下跑的时候,QTAgent32 crash.换成IIS下运行的时候,IIS crash.之前的连接是没问题的,后网上找了资料,根据牛人所说的方案解决了. 1. Exception message 已成功与服务器建立连接,但是在登录过程中发生错误. (provider: SSL Provider, error: 0 - 接收到的消息异常,或格式不正确.) ---> System.ComponentModel.Win32Except
-
用户"sa"登陆失败 SQLServer 错误18456的解决方法
用windows账号还是可以登录的. 查找问题的过程: 第一步: 启动所有与SQL有关的服务,问题依旧: 第二步: 查看windows防火墙,被默认启动了,不启动选择项被Disabled.两个提示"由于安全考虑,某些设置由组策略控制""Windows防火墙正在使用您的域设置",先用gpedit.msc打组策略编辑器,机算机配置--管理模板--网络--网络连接--Windows防火墙--标准配置文件,查看右边各选项属性,都是未配置状态,问题不在这里. 另外一个提示中提
-
SQLServer无法打开用户默认数据库 登录失败错误4064的解决方法
无法打开用户默认数据库,登录失败,其原因是登录帐户的默认数据库被删除. 解决办法是使用管理员帐户修改此登录帐户的默认数据库. 1.使用管理员帐号登入企业管理器,在"对象资源管理器"中,展开"安全性"--"登录名",右键该帐户点击"属性" 2.在"登录属性"的对话框中,第一个"常规"选项卡界面的右边更改默认的数据库. 如果出问题的就是你的管理员帐户,你无法登入企业管理器里修改,可以使用以下
-
SQLServer2005混合模式登录配置(用户登录错误18452,233,4064)
一.错误提示:用户登录失败,该用户与可信SQL Server连接无关联 错误18452 原因是远程登录没配置好,配置方法如下: 1:开启SQL2005远程连接功能 配置工具->SQLServer外围应用配置器->服务和连接的外围应用配置器->打开SQLEXPRESS下的DataBase Engine节点,选择远程连接,选择"同时使用TCP/IP和named pipes",确定后,重启数据库服务. 2:登录改为混合模式 打开管理器,用windows方式连接进入数据库,右
-
在登录触发器错误情况下连接SQL Server的方法
错误如图所示: 图一 如果不能很好地执行登录触发器,那么将会导致登录失败. 例如,如果创建了这个触发器,那么就可以设计下面的代码来达到失败的目的. 复制代码 代码如下: CREATE TRIGGER BadLogonTrigger ON ALL SERVER FOR LOGON AS BEGIN INSERT INTO BadDB.dbo.SomeTable VALUES ('Test'); END; GO 没有一个数据库称为BadDB,这意味着在BadDB内也没有一张表叫SomeTable.因
-
PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
本文实例讲述了PHP连接SQL Server的方法.分享给大家供大家参考,具体如下: 之前我们实现了用thinkPHP5.1框架搭配的项目,实现了thinkPHP5.1与本机sql server 2008 R2的连接,并且把数据内容显示在页面上. 本机的使用工具:1.编译工具PhpStorm 2.WampServer 集成工具(Apache 2.4.33:PHP 7.0.29) 在连接过程中,有两种方法可以连接. 第一种(用到ThinkPHP框架的,配置微软自带的驱动): 先把tp5的项目放在w
-
Windows系统下Java连接SQL Server的方法简介
使用JDBC连接SQL Server 设置SQL Server服务器 我使用的是SQL Server 2005标准版SP2,这些都默认即可,一般不用配置.如果需要配置端口请看下面. 1."开始"→"程序"→"Microsoft SQL Server 2005"→"配置工具"→"SQL Server 配置管理器"→"SQL Server 2005 网络配置"→"MSSQLSERV
-
laravel5使用freetds连接sql server的方法
相关版本 系统ubuntu 16.04, 使用的PHP版本是7.0.30, sqlserver 2012, freetds为0.92 Laravel5.5和5.4都测试过了 什么是FreeTDS 简单的说FreeTDS是一个程序库,可以实现在Linux系统下访问微软的SQL数据库! FreeTDS 是一个开源的程序库,是TDS(表列数据流 )协议的再次实现.它可以被用在Sybase的db-lib或者ct-lib库.它也包含一个ODBC的库.允许许多开源的应用软件比如Perl和PHP(或者你自己
-
Win7 安装软件时无法连接sql server解决方法
安装软件的时候默认访问sql server账号是sa,Management Studio Express默认是使用Windows身份验证登陆的,在系统默认实例Security的Login目录下找到了sa账户,查了下,原来是SQL server的默认管理员账户,而且据说还出现过好多安全漏洞.既然只是本地使用,也不必考虑那么多,能用就成. 用管理员权限打开Management Studio Express,这个时候不能使用sql账号登陆,用Windows身份验证登陆后,在实例下右键点击SQL服务器名
-
php如何连接sql server
说明: 1:PHP5.2.x本身有个php_mssql.dll的扩展用来连接Sql server,但是这个dll只是用来连接低版本 Sql server的(2000以下版本),在Sql server 2005及以上版本无法使用mssql_connect连接到数据库. 2:php5.3.x不再支持php_mssql.dll 拓展库了,及时使用php5.2.x中的php_mssql.dll也无法使用. 微软专门为PHP出了个SQL Server的扩展(Windows版本的),对于Windows下使用
-
Windows和Linux系统下perl连接SQL Server数据库的方法
本文将提供一些perl连接Microsoft SQL Server数据库的实例.perl脚本运行在Windows和Linux平台. Windows平台 如果在Windows平台下运行perl脚本,建议使用依赖DBI的两个模块包,提供标准的数据库接口模块. DBD::ODBC DBD::ADO 使用DBD::ODBC 如果选用DBD::ODBC,下面的实例代码将展示如何连接到SQL Server数据库: 复制代码 代码如下: use DBI; # DBD::ODBC my $dsn = '
-
关于C#连接SQL Server时提示用户登录失败的解决方法
在用C#开发windows端程序并连接SQL Server时有可能会遇到数据库登录失败的问题,报错现象如下图所示: 报错信息如下: System.Data.SqlClient.SqlException: '用户 '' 登录失败.' This exception was originally thrown at this call stack: [External Code] MyQQ.DataOperator.ExecSQL(string) in DataOperator.cs
-
远程连接局域网内的SQL Server 的方法
第一个错误"SQL Server 不存在或访问被拒绝"通常是最复杂的,错误发生的原因比较多,需要检查的方面也比较多.一般说来,有以下几种可能性: 1.SQL Server名称或IP地址拼写有误; 2.服务器端网络配置有误; 3.客户端网络配置有误. 要解决这个问题,我们一般要遵循以下的步骤来一步步找出导致错误的原因. 首先,检查网络物理连接: ping <服务器IP地址> 或者 ping <服务器名称> 如果 ping <服务器IP地址> 失败,说明
-
vs code连接sql server数据库步骤及遇到的问题小结
最近因为要在vs code上连接到sql server数据库,第一次尝试,之前用 java的时候使用jdbc连接过数据库,感觉用vs code连接数据库步骤要简单一些,网上写的博客也不是特别多,就顺便把我的步骤记录下来,仅供参考,这里也参考了官网给出的连接方法,链接放在文章下方了. 第一步,安装mssql扩展 先在vs code的扩展里面找到SQL Server(mssql)扩展,并下载安装即可. 下载好之后会出现SQL SERVER的版块.(请忽略已经连接好的数据库) 第二步,连接到 SQL
随机推荐
- rational对象脚本命令
- 巧用批处理解决IE不支持JavaScript等问题
- Vue.js系列之vue-router(上)(3)
- JDBC实现Mysql自动重连机制的方法详解
- 关于Java集合框架面试题(含答案)上
- python操作MySQL数据库的方法分享
- 三种方法让Response.Redirect在新窗口打开
- php错误提示failed to open stream: HTTP request failed!的完美解决方法
- Android中Intent习惯用法
- 通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
- Android IPC进程间通信详解最新AndroidStudio的AIDL操作)
- Linux下安装Python3和django并配置mysql作为django默认服务器方法
- JS判断客户端是手机还是PC的2个代码
- Javascript实现图片加载从模糊到清晰显示的方法
- phpize的深入理解
- Javascript 读后台cookie代码
- Bootstrap滚动监听组件scrollspy.js使用方法详解
- bootstrap select插件封装成Vue2.0组件
- Fastdfs与nginx进行压缩图片比率
- 说说大型高并发高负载网站的系统架构