SQL 触发器 监测数据变动 执行外部程序

SQL 触发器 监测数据变动 执行外部程序,第1张

--调用外部程序或者命令

exec xp_cmdshell 'dir c:\'

注意不能调用需要用户干预才能继续运行的程序.

使用Sqlserver的xp_CmdShell扩展存储过程的一个注意:

这个存储过程只能执行Dos控制台程序,其他的Exe程序不能在Sqlserver进程空间执行.

但外部程式必须是一个自生灭的程式(即没有消息循环、不需要与用户交互),否则将会进入死循环中。

最关键原因:windows firewall开启的原因。

添加例外:

Windows Vista 和 Windows Server 2008 以及更高版本

以下过程通过使用具有高级安全 Microsoft 管理控制台 (MMC) 管理单元的 Windows 防火墙来配置该 Windows 防火墙。从 Windows Vista 和 Windows Server 2003 开始提供此管理单元。高级安全 Windows 防火墙仅配置当前配置文件。有关高级安全 Windows 防火墙的详细信息,请参阅配置 Windows 防火墙以允许 SQL Server 访问。

打开 Windows 防火墙的端口以进行 TCP 访问

在“开始”菜单上,单击“运行”,键入 WF.msc,然后单击“确定”。

在“高级安全 Windows 防火墙”的左窗格中,右键单击“入站规则”,然后在 *** 作窗格中单击“新建规则”。

在“规则类型”对话框中,选择“端口”,然后单击“下一步”。

在“协议和端口”对话框中,选择 TCP。选择“特定本地端口”,然后键入数据库引擎实例的端口号,例如默认实例的端口号 1433。单击“下一步”。

在“ *** 作”对话框中,选择“允许连接”,然后单击“下一步”。

在“配置文件”对话框中,选择在您想要连接到数据库引擎时描述计算机连接环境的任何配置文件,然后单击“下一步”。

在“名称”对话框中,输入此规则的名称和说明,再单击“完成”。

在使用动态端口时打开对 SQL Server 的访问

在“开始”菜单上,单击“运行”,键入 WF.msc,然后单击“确定”。

在“高级安全 Windows 防火墙”的左窗格中,右键单击“入站规则”,然后在 *** 作窗格中单击“新建规则”。

在“规则类型”对话框中,选择“程序”,然后单击“下一步”。

在“程序”对话框中,选择“此程序路径”。单击“浏览”,导航到要通过防火墙访问的 SQL Server 实例,再单击“打开”。默认情况下,SQL Server 位于 C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\Sqlservr.exe。单击“下一步”。

在“ *** 作”对话框中,选择“允许连接”,然后单击“下一步”。

在“配置文件”对话框中,选择在您想要连接到数据库引擎时描述计算机连接环境的任何配置文件,然后单击“下一步”。

在“名称”对话框中,输入此规则的名称和说明,再单击“完成”。

网络查询解决方案:

Step 1: 在服务器图标上单击右键,选择property,然后选connection,把allow remote connection选上,这一步的目的是让数据库允许远程连接。

Step 2: 在数据库服务器图标上,展开目录,找到Security下的Logins子目录树,设置SA账户的属性,改password,在status栏里,login选上enable。这一步的目的是,允许远程客户端使用sa用户邓肯,sa是system administrator的缩写,拥有数据库最高管理权限,默认状态下是禁用的。

Step3:在数据库服务器图标上右键,打开Facets选项把RemoteDacEnabled的value改成true。这一步的目的是允许建立远程专用管理员连接,此种连接拥有最高权限,即使无法建立标准连接,也可以建立DAC连接。

Step4:开启服务,打开SQL Server Configuration Tool,打开网络配置,选择TCP/IP协议,点开属性,IP地址填数据库所在服务器的IP地址,如果是本地服务器,填127.0.0.1。

测试方法:

建立一个C# Console application源文件,代码如下:

[c-sharp] view plaincopy

class Program

{

static void Main(string[] args)

{

SqlConnection con = new SqlConnection("server=.uid=sapwd=123456789database=MyTable")

try

{

con.Open()

Console.WriteLine("连接数据库成功")

}

catch

{

Console.WriteLine("无法连接数据库")

}

Console.ReadKey()

}

}

如果能正常连接,则会提示连接成功。

Sql Server 2005的1433端口打开和进行远程连接

SQL code

如何打开sql server 2005 的1433端口

配置工具->Sql Server Configuration Manager->MSSQLSERVER的协议

看看TCP/IP协议是否启动,如果启动,右键菜单点"属性" ,在分页菜单中选"IP地址",把"IP1"和"IP2"中"TCP端口"为1433,

"已启用"改为"是"

配置工具->Sql Server Configuration Manager->SQL Native Client 配置->客户端协议->TCP/IP

选择TCP/IP右键菜单中"属性",确认"默认端口"是1433,"已启用"为"是"

SQL code

SQL Server 2005 远程连接

配置TCP/IP属性.

Surface Area Configuration -->Database Engine -->Remote Connections --->Using TCP/IT

SQL Server 外围应用配置器—服务和连接外围配置—database englie—远程连接—启用(远程连接的TCP/IP和named pipes)

SQL Server Configuration Manager—SQL2005网络配置—启用TCP/IP和named pipes

-----------------------------------------------------------------------------------------

一般按如上即可.

其他说明见下:

sqlserver2005(Express版),为了便于管理,你还需要去下一个manage管理器,微软的官方网站有

下,安装好manage管理器后,在程序中连接sqlserver2005,下面几点是要注意的。

1. 开启sql2005远程连接功能,开启办法如下,

配置工具->sql

server外围应用配置器->服务和连接的外围应用配置器->打开MSSQLSERVER节点下的Database Engine

节点,先择"远程连接",接下建议选择"同时使用TCP/IP和named pipes",确定后,重启数据库服务就可以了.

2.登陆设置改为,Sql server and windows Authentication方式同时选中,具体设置如下:

manage管理器->windows

Authentication(第一次用windows方式进去),->对象资源管理器中选择你的数据服务器--右键>属

性>security>Sql server and windows Authentication方式同时选中.

3:设置一个Sql server方式的用户名和密码,具体设置如下:

manage管理器->windows Authentication>new query>sp_password null,'sa123456','sa'

这样就设置了一个用户名为sa ,密码为:sa123456的用户,下次在登陆时,可以用Sql server方式,

用户名为sa ,密码为:sa123456的用户进数据库了.

4: 做完上面三步后,这样写连接字符串就可以顺利进入数据库了,

(server=.\\sqlexpressuid=sapwd=sa123456database=master"

其它版本,做如下设置

程序—Microsoft SQL Server 2005—配置工具—SQL Server 外围应用配置器—服务和连接的外围应用配置器—

1、MSSQLserver(实例名)—DataBase Engine—远程连接—(设置选项)

在下方选项

2、SQL Server Browser—服务(停止时只本机访问)

3、程序—Microsoft SQL Server 2005—配置工具—SQL Server Configuration Manager—网络连接协议-选择实例对应协议—启用(shard memory、Named Pipes、TCP\IP)

注: SQL Server 浏览器程序以服务的形式在服务器上运行。SQL Server 浏览器侦听对 Microsoft SQL Server 资源的传入请求,

并提供计算机上安装的 SQL Server 实例的相关信息。

SQL Server 浏览器可用于执行下列三种 *** 作:

浏览可用服务器

连接到正确的服务器实例

连接到专用管理员连接 (DAC) 端点

SQL Server Browser 服务 (sqlbrowser) 为数据库引擎 和 SSAS 的每个实例提供实例名称和版本号。

SQL Server 浏览器随 Microsoft SQL Server 2005 一起安装,

为该计算机上运行的早期版本的 SQL Server(从 Microsoft SQL Server 7.0 开始)提供此服务。

因为sqlserver的可执行程序路径并没有注册到环境变量里,直接输入肯定找不到。

告诉你一个简单的方法:

运行services.msc(在运行里输入),打开服务管理

在服务列表里找到SQL

Server开头的服务具体的服务名取决于你安装的时候设置的是什么实例名。如果是SQL

Server

2000,服务名是MSSQL开头的服务。

找到服务以后双击服务名,常规项最下边有启动参数框,把-c

-f

-m输入到那个框里,然后点“启动”按钮就可以了。如果已经启动,就先停止,然后再启动


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12104698.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存