限定IP访问SQL Server

本文介绍了一个 SQL Server 的登录触发器实现方案,该触发器用于限制除指定 IP(172.22.8.124)外的所有客户端连接尝试。文中展示了创建和删除触发器的 T-SQL 代码。
USE master
GO
alter TRIGGER tr_LoginCheck
ON ALL SERVER
FOR LOGON
AS
IF EVENTDATA().value('(/EVENT_INSTANCE/ClientHost)[1]', 'varchar(15)') <> '172.22.8.124'
    ROLLBACK TRAN
GO
drop TRIGGER tr_LoginCheck ON ALL SERVER
### 如何在 SQL Server 中使用 IP 地址连接并指定数据库名和表名 在 SQL Server 中,可以通过提供完整的连接字符串来实现基于 IP 地址的连接,并进一步指定目标数据库以及查询特定的表。以下是详细的说明: #### 连接字符串格式 SQL Server 的连接字符串通常由以下几个部分组成: - `Server` 或 `Data Source`: 指定服务器地址(可以是 IP 地址或主机名)。 - `Database` 或 `Initial Catalog`: 指定要连接的目标数据库名称。 - `User ID` 和 `Password`: 提供用于身份验证的用户名和密码。 一个典型的连接字符串如下所示[^1]: ```plaintext Server=<IP Address>;Database=<Database Name>;User Id=<Username>;Password=<Password>; ``` 如果需要连接到本地实例,则可以用 `"."` 替代具体的 IP 地址[^1]。 #### 查询指定表的数据 一旦建立了与目标数据库的连接,就可以通过标准的 SQL 查询语句访问所需的表数据。例如,假设有一个名为 `Employees` 的表位于数据库 `HR_DB` 中,那么可以从该表中检索记录的示例如下: ```sql SELECT * FROM HR_DB.dbo.Employees; ``` 这里需要注意的是,在跨数据库或者跨服务器的情况下可能还需要加上完全限定的对象路径,即 `[<database_name>].[<schema_name>].[<table_name>]` 形式的命名方式[^2]。 当涉及到远程服务器上的对象时,先定义好链接服务器之后再执行相应的操作会更加方便高效。比如下面展示了一个简单的例子关于怎样设置一个新的链接服务器及其登录信息[^2]: ```sql EXEC sp_addlinkedserver 'RemoteServer', '', 'SQLOLEDB', '<Remote_Server_IP>'; EXEC sp_addlinkedsrvlogin 'RemoteServer', 'FALSE', NULL, '<username>', '<password>'; GO -- Now you can query the remote table like this: SELECT * FROM RemoteServer.<target_database>.dbo.<remote_table>; ``` 以上脚本中的 `<Remote_Server_IP>` 应替换为目标机器的实际网络位置;同样地,也要把占位符替换成真实的账户凭证等相关参数值。 对于更复杂的场景,如动态生成这些配置项等内容,则可考虑采用编程手段完成自动化部署过程,就像之前提到过的 C# 示例那样去测试连通性和列举可用资源列表等功能[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值