一.只允许指定IP访问数据库 创建测试账号 CREATE LOGIN testuser WITH PASSWORD = '123' GO CREATE TRIGGER [tr_connection_limit] ON ALL SERVER WITH EXECUTE AS 'sa' FOR LOGON AS BEGIN --限制test这个帐号的连接 IF ORIGINAL_LOGIN()= 'test' --允许test在本机和下面的IP登录 AND (SELECT EVENTDATA().va
虽然同表级(DML)触发器和库级(DDL)触发器共顶着一个帽子,但登陆触发器与二者有本质区别.无论表级还是库级,都是用来进行数据管理的,而登陆触发器是纯粹的安全工具. 登陆触发器只响应LOGON事件,在登陆数据库成功后.用户会话未实际建立前触发.登陆数据库失败,如账号密码错误,不会激发登陆触发器.登陆触发器内部的错误消息及PRINT等SQL语句输出信息,统一写到SQL Server 错误日志.登陆触发器可以同时存在多个,但存在多个时,SQL Server不保证所有触发器的执行顺序,只能使用sp_
--跨ip库更新表字段 update uat set goodsType=dev.goodsType from OPENDATASOURCE('SQLOLEDB','Data Source=127.0.0.1;User ID=sa;password=123456').mark_db1.dbo.priceInfo_table1 dev , OPENDATASOURCE('SQLOLEDB','Data Source=127.0.0.2;User ID=sa;password=654321').ma
原文:SQL Server 连接问题-TCP/IP 出自:http://blogs.msdn.com/b/apgcdsd/archive/2012/02/24/ms-sql-server-tcp-ip.aspx TCP/IP的基本工作原理这里就不浪费口水了.现在这网络年代,谁不知道TCP/IP啊.不要跟我抬杠说你偏就没听说过TCP/IP阿,真是这样那你得自己去补补课了. TCP/IP协议有两个基本的东西,一个是IP地址, 另一个是端口号. 在SQL Server 上使用TCP/IP协议是非常简单
SQL Server .NET Data Provider 连接字符串包含一个由一些属性名/值对组成的集合.每一个属性/值对都由分号隔开. PropertyName1=Value1;PropertyName2=Value2;PropertyName3=Value3;.....同样,连接字符串必须包含SQL Server实例名称: Data Source=ServerName; 使用本地的SQL Server(localhost),如果想要使用
SQL Server .NET Data Provider 连接字符串包含一个由一些属性名/值对组成的集合.每一个属性/值对都由分号隔开. PropertyName1=Value1;PropertyName2=Value2;PropertyName3=Value3;.....同样,连接字符串必须包含SQL Server实例名称: Data Source=ServerName; 使用本地的SQL Server(localhost),如果想要使用远程服
SQL Server datetime数据类型设计.优化误区 一.场景 在SQL Server 2005中,有一个表TestDatetime,其中Dates这个字段的数据类型是datetime,如果你看到表的记录如下图所示,你最先想到的是什么呢? (图1:数据列表) 你看到这些数据,是不是觉得这样的设计既浪费了存储空间,又使得这个列的索引增大,查询起来更慢,你也想使用一些其它的数据类型来代替这个datetime吧? 其实大家都是这么想的,这个方向是100%正确的,但是在写这篇文章以前,我进入了两
SQL Server .NET Data Provider 连接字符串包含一个由一些属性名/值对组成的集合.每一个属性/值对都由分号隔开. PropertyName1=Value1;PropertyName2=Value2;PropertyName3=Value3;.....同样,连接字符串必须包含SQL Server实例名称: Data Source=ServerName; 使用本地的SQL Server(localhost),如果想要使用