前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CentOS 7上配置SQL Server链接其他SQL Server服务器

CentOS 7上配置SQL Server链接其他SQL Server服务器

原创
作者头像
晓松
发布于 2025-04-05 07:58:31
发布于 2025-04-05 07:58:31
1320
举报

概述

本文介绍在CentOS 7系统上运行的SQL Server如何链接访问其他SQL Server服务器的详细步骤,包括驱动安装、配置和连接测试。

安装必要组件

1. 安装ODBC驱动

代码语言:bash
AI代码解释
复制
# 安装基础ODBC组件
sudo yum install unixODBC unixODBC-devel

# 添加Microsoft仓库
curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo

# 安装SQL Server ODBC驱动
sudo ACCEPT_EULA=Y yum install msodbcsql17

2. 验证安装

代码语言:bash
AI代码解释
复制
odbcinst -q -d -n "ODBC Driver 17 for SQL Server"

SQL Server配置

1. 启用Ad Hoc分布式查询

代码语言:sql
AI代码解释
复制
-- 启用高级选项
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;

-- 启用Ad Hoc Distributed Queries
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;

-- 验证设置
EXEC sp_configure 'Ad Hoc Distributed Queries';

2. 生成服务主密钥(如需要)

代码语言:sql
AI代码解释
复制
ALTER SERVICE MASTER KEY FORCE REGENERATE

连接测试方法

方法1:使用OPENROWSET直接连接

代码语言:sql
AI代码解释
复制
SELECT * FROM OPENROWSET('MSOLEDBSQL', 'Server=远程服务器;UID=用户名;PWD=密码;',
'SELECT * FROM 数据库名.dbo.表名');

方法2:配置链接服务器(推荐)

代码语言:sql
AI代码解释
复制
-- 添加链接服务器
EXEC master.dbo.sp_addlinkedserver 
    @server = N'LinkedServerName',  -- 本地使用的链接服务器名称
    @srvproduct = '',               -- 产品名称,SQL Server留空
    @provider = 'MSOLEDBSQL',       -- 提供程序
    @datasrc = '192.168.1.22,1433', -- 目标服务器地址和端口
    @catalog = 'pcb_biz';           -- 默认数据库

-- 配置登录凭据
EXEC master.dbo.sp_addlinkedsrvlogin 
    @rmtsrvname = N'LinkedServerName',    -- 链接服务器名称
    @useself = 'false',                   -- 不使用本地凭据
    @locallogin = NULL,                   -- 对所有本地登录应用此配置
    @rmtuser = N'远程用户名',               -- 远程登录用户名
    @rmtpassword = N'远程密码';            -- 远程登录密码
  • 查看已经创建的链接服务器
代码语言:sql
AI代码解释
复制
EXEC sp_linkedservers; -- 检查是否存在
EXEC sp_helpserver;    -- 查看服务器详情
  • 删除链接服务器
代码语言:sql
AI代码解释
复制
EXEC master.dbo.sp_dropserver @server = N'LinkedServerName';

测试链接服务器

代码语言:sql
AI代码解释
复制
-- 查询远程服务器上的表
SELECT TOP 1 * FROM [LinkedServerName].[pcb_biz].sys.tables;

常见问题解决

  1. 连接失败:检查防火墙设置,确保1433端口开放
  2. 权限问题:确认远程SQL Server允许sa2账户远程连接
  3. 驱动问题:验证ODBC驱动是否正确安装
  4. 服务主密钥:如遇加密错误,尝试重新生成服务主密钥
代码语言:bash
AI代码解释
复制
# 验证基本连接
sqlcmd -S 远程服务器IP -U 用户名 -P 密码 -d 数据库名 -Q "SELECT 1"

最佳实践

  • 使用链接服务器而非OPENROWSET进行持久化连接
  • 为链接服务器创建专用账户而非sa账户
  • 在生产环境中使用更安全的认证方式
  • 定期检查链接服务器的连接状态

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
Android查缺补漏(IPC篇)-- 进程间通讯基础知识热身
本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8479282.html 在Android中进程间通信是比较难的一部分,同时又非常重要,针对进程间通信,博主会用四篇文章来介绍,本篇文章为IPC系列的开篇,主要介绍一些IPC中用到的一些概念、基础等,目的是让读者朋友们在学习IPC之前对一些必要的知识有一个大体的把握。在Android中进程间通讯的方式有很多种,在后续的三篇中会分别介绍每一种方式的实现过程已经各自的优缺点。 IPC是什么? I
codingblock
2018/03/30
6230
Android跨进程通信IPC之4——AndroidIPC基础2
通过 Parcel的writeStrongBinder方法将Binder对象序列化:
隔壁老李头
2018/08/30
1.3K0
Android跨进程通信IPC之4——AndroidIPC基础2
Android跨进程通信IPC之14——其他IPC方式
前面几篇文章,我们介绍了IPC的基础知识和Binder机制,本篇文章主要讲解各种跨进程的通信方式。
隔壁老李头
2018/08/30
1.7K0
Android跨进程通信IPC之14——其他IPC方式
Android 反序列化漏洞攻防史话
Java 在历史上出现过许多反序列化的漏洞,但大部分出自 J2EE 的组件。即便是 FastJSON 这种漏洞,似乎也很少看到在 Android 中被实际的触发和利用。本文即为对历史上曾出现过的 Android Java 反序列化漏洞的分析和研究记录。
evilpan
2023/03/27
1.9K0
Android 反序列化漏洞攻防史话
Android进程间通信(一):基础介绍
进程间通信 即 IPC机制,IPC 全称为 Inter-Process Communication。
103style
2022/12/19
3180
Android开发之漫漫长途 X——Android序列化
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列。该系列引用了《Android开发艺术探索》以及《深入理解Android 卷Ⅰ,Ⅱ,Ⅲ》中的相关知识,另外也借鉴了其他的优质博客,在此向各位大神表示感谢,膜拜!!!另外,本系列文章知识可能需要有一定Android开发基础和项目经验的同学才能更好理解,也就是说该系列文章面向的是Android中高级开发工程师。
LoveWFan
2018/08/07
4020
Android十八章:多进程基础
这一章主要讲述多进程的作用,序列化和反序列化,Serializable和Parcelable
ppjun
2018/09/05
4750
Android技能树 — 多进程相关小结
这次是讲Android存储路径及IO的基本操作。因为我们在开发的时候会经常这种方便的需求。这篇文章的内容我写的可能很少,都没有细写。别吐槽。o( ̄︶ ̄)o
青蛙要fly
2018/08/29
4570
Android技能树 — 多进程相关小结
Android 进阶6:两种序列化方式 Serializable 和 Parcelable
张拭心 shixinzhang
2018/01/05
1.6K0
Android 进阶6:两种序列化方式 Serializable 和 Parcelable
笔记——IPC跨进程通信(九)
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。 (1)线程是进程的一部分 (2)CPU调度的是线程 (3)系统为进程分配资源,不对线程分配资源
木溪bo
2018/12/27
6450
漫谈序列化—使用、原理、问题
说到对象,是一个比较宽泛的概念,简单的说,他就是类的一个实例,有状态和行为,存活在内存中,一旦JVM停止运行,对象的状态也会丢失。
码上积木
2021/02/08
9090
手写 Parcelable 序列化和反序列化的具体过程
binder 和 socket 通信的区别有哪些 : binder 共享内存,Soket需要copy内存 Socket 远程,本地低速(zygote) Serializable 和 Parcelable 之间的区别: (io流,共享内存) Parcelable 序列化和反序列化的具体过程 Parcel.kt package zzw.com.testparcel public class Parcel { companion object { // Used
曾大稳
2018/09/11
8970
Parcel源码上手
Parcel作为Android Binder通信的基础,从源码的角度,了解下parcel的特性,还是很有必要的。
韦东锏
2021/09/29
7450
Android AIDL 跨进程通信
安卓 IPC 跨进程通信有很多种方式,我们可以用 Bundle传递数据,通过 Intent 意图去打电话,在 Uri 里面传递电话号码
萬物並作吾以觀復
2019/08/12
5030
Art of Android Development Reading Notes 2
(1)任何一个操作系统都需要有相应的IPC机制,Linux上可以通过命名通道、共享内存、信号量等来进行进程间通信。 (2)Android系统不仅可以使用Binder机制来实现IPC,还可以使用Socket实现任意两个终端之间的通信。
宅男潇涧
2018/08/01
5230
Art of Android Development Reading Notes 2
支持跨进程单例的一种实现方案
零 烫烫烫烫烫烫 单例模式,也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。 但这种设计模式有局限:只能在一个进程内生效。但项目开发中又难免会出现开启多个进程的情况。这个时候,原本设计的单例,在整个应用的范围来看,变成了两个单例。两个进程内的单例的内部状态(变量的取值)也就无法同步了,这也是这个问题的核心(单例的行为(方法)在不同进程是一致的,内部状态会影响到行为的结果)。 一 如何解
QQ音乐技术团队
2018/01/30
2.9K0
跨进程通信(socket,binder,handler),Binder ,linkToDeathAIDL,Bundle,使用Socket
(1)IPC是Inter-Process Communication的缩写,含义为进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程。 (2)ANR是Application Not Responding的缩写,即应用无响应。主线程执行大量的耗时操作容易导致ANR现象发生。5s,广播10s (3)在Android中最有特色的进程间通信方式就是Binder了,通过Binder可以轻松地实现进程间通信。 (4)Android还支持Socket,通过Socket也可以实现任意两个终端或者两个进程之间的通信。
zhangjiqun
2024/12/16
5760
跨进程通信(socket,binder,handler),Binder ,linkToDeathAIDL,Bundle,使用Socket
Android 进阶7:进程通信之 AIDL 的使用
张拭心 shixinzhang
2018/01/05
1.2K0
Android 进阶7:进程通信之 AIDL 的使用
Binder进程间通信详解
前言 隔行如隔山,这句话同样适用于任何时候,即时同一个专业,深入下去的话,差别也是巨大的。今天,讲下自己如何学习binder进程间通信的机制的一些见解。开始的时候,只知道 Binder 是个很底层的东西,甚至对于具体是什么用都不是很清楚。 主要是通过两种方式: 看别人写的Binder博文 目的很简单,大概了解Binder是个什么东西,有哪些核心的东西,对于看源码的时候选择性过滤有帮助,最好是看了后画下思维导图总结下或者可以画下流程图。 看Binder源码 对于切入点的话,从最熟悉的客户端入手;选择
用户1148881
2018/05/28
1.3K0
Parcelable与Serializable
由于 Java 的 Serializable 的性能较低,Parcelable 正式在这个背景下产生的,它核心作用就是为了解决 Android 中大量跨进程通信的性能问题。
老马的编程之旅
2022/06/22
1.2K0
推荐阅读
相关推荐
Android查缺补漏(IPC篇)-- 进程间通讯基础知识热身
更多 >
LV.1
腾讯云工程师
目录
  • 概述
  • 安装必要组件
    • 1. 安装ODBC驱动
    • 2. 验证安装
  • SQL Server配置
    • 1. 启用Ad Hoc分布式查询
    • 2. 生成服务主密钥(如需要)
  • 连接测试方法
    • 方法1:使用OPENROWSET直接连接
    • 方法2:配置链接服务器(推荐)
    • 测试链接服务器
  • 常见问题解决
  • 最佳实践
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档