mf.*_*ngs 4 sql-server best-practices linked-server sql-server-2016
您好,感谢您的光临。我是一个偶然的 DBA,正在寻找以正确方式创建链接服务器的一些指导。MS 提供了数据类型的完整描述以及 sp_addlinkedserver、sp_addlinkedsrvlogin 和 sp_serveroption 的所有各种参数的描述,但没有关于如何将各种选项对齐为给定情况的最佳实践的指导。
我有其他 DBA 的例子,他们只是使用了“sa”密码,但我的研究表明我应该使用针对他们的链接服务器用途量身定制的登录。问题是我到目前为止无法找到正确的组合和顺序(操作顺序)来正确创建所有部件和部件,从而导致链接服务器允许两台服务器之间进行有限的通信。
目标:在源服务器之间创建一个链接服务器,这将允许来自源服务器的作业步骤检查某些条件,如果为 TRUE,则在目标服务器上调用 sp_start_job。...仅此而已。
根据建议,我在源和目标上创建了两个相同名称/密码的 SQL 身份验证登录,两者都具有有限的“公共”权限。
我创建了链接服务器,试图将本地登录映射到远程登录(想想如果我做到了,我会仔细修改目标登录的权限以找到允许它执行 sp_start_job 的权限)。
但到目前为止,我唯一的奖励是一系列各种类型的失败通知。
有大量在线文档解释了每个不同的 proc/param 的作用,但我很难找到某种概述来解释 procs/params 的组合如何导致不同的预期结果。
我希望得到一些有用的建议,参考一些“尚未发现”的教程,或者甚至是关于如何实现我的目标和培养一点自尊的分步说明。(到目前为止,这项任务除了挫伤我的自尊心之外什么也没做!)
感谢您的时间。
我将首先使用 Windows 身份验证和@useself='True'
,它将使用源服务器的 SQL Server 代理服务帐户来建立远程连接。如果登录失败,请查看目标服务器的 SQL Server 错误日志以确定要在目标服务器上为哪个 Windows 主体创建登录。所以链接服务器定义将类似于:
USE [master]
GO
EXEC sp_addlinkedserver @server = N'TargetServer', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'targetserver.mydomain.com'
EXEC sp_addlinkedsrvlogin @rmtsrvname=N'TargetServer',@useself=N'True',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL
GO
EXEC sp_serveroption @server=N'TargetServer', @optname=N'collation compatible', @optvalue=N'true'
GO
EXEC sp_serveroption @server=N'TargetServer', @optname=N'data access', @optvalue=N'true'
GO
EXEC sp_serveroption @server=N'TargetServer', @optname=N'rpc out', @optvalue=N'true'
GO
EXEC sp_serveroption @server=N'TargetServer', @optname=N'remote proc transaction promotion', @optvalue=N'false'
GO
Run Code Online (Sandbox Code Playgroud)
模拟调用者对于定义链接服务器的 SQL Server 的远程连接更加复杂,因为您必须正确配置Kerberos 约束委派。但是当从 SQL 代理作业使用时,它不是“双跳”,因此是一个非常简单的配置。
归档时间: |
|
查看次数: |
622 次 |
最近记录: |