如何使用SSDT 2017在SQL Server实例之间传输SQL登录信息
在这篇文章中,我们将学习如何使用SSDT 2017将SQL Logins复制到另一个实例。
演示设置
为了演示,我在Nisarg-PC\SQL01服务器中创建了以下用户。
Apptracer
Nisarg Upadhyay
Nirali Upadhyay
应用程序用户
要创建登录,请运行脚本。
USE [master] go CREATE Login [Apptracer] WITH password= N'Zqso0BMWr33M6fHFCL+V+X1ZKX88wJF23UX3XWy9GMI=', default_database= [WideWorldImporters], default_language=[us_english], check_expiration=OFF, check_policy=OFF go CREATE Login [Nisarg Upadhyay] WITH password= N'/ofiFr8yaiSZsGUELYE4mR/47zKlUAWCm7RtuLzeamw=', default_database=[master], default_language=[us_english], check_expiration=OFF, check_policy=OFF go USE [master] go CREATE Login [Nirali Upadhyay] WITH password= N'jcQc7ouCfkxjb3J2rNgK4z1WHrwq3uYoiL/kjnm1Mc8=', default_database= [WideWorldImporters], default_language=[us_english], check_expiration=OFF, check_policy=OFF go USE [master] go CREATE Login [AppUser] WITH password= N'Mw7SA/S/37IXKmUV7spV83vh5A5zB8znd40a6Wd3kQM=', default_database=[master], default_language=[us_english], check_expiration=OFF, check_policy=OFF go 复制代码
创建SSIS包
首先,让我们创建一个新的SSIS项目。启动SQL Server数据工具(SSDT 2017) ???? 创建新项目 ???? 选择集成服务项目。项目的名称是转移Logins。
为了转移SQL登录,我们使用转移登录任务。从SSIS工具箱中拖动Transfer Login Task,并把它放在控制流表面。
现在,让我们来配置它。
配置转移登录任务
要配置,双击转移登录任务。一个名为Transfer Logins Task editor的对话框打开。点击Logins,可以看到以下配置参数。
源连接和目标连接
你想转移的登录信息
选项
让我们来配置源和目标连接。
配置源连接和目的地连接
要配置源连接,点击SourceConnection,选择New Connection。
在SMO连接管理器编辑器中,在服务器名称中指定Nisarg-PC\SQL01,并选择windows认证来登录服务器。
点击 "确定 "保存连接并关闭对话框。要配置源连接,点击SourceConnection,选择New Connection。
同样,对于目标连接,在服务器名称中指定Nisarg-PC\SQL02,并选择windows认证登录到服务器上。
连接部分看起来像下面的图片。
选择要传输的SQL登录信息
在登录部分,有三个选项。
LoginsToTransfer:这个选项用于选择你想转移的SQL登录。这个选项有以下几个选项。
AllLogins:如果你想转移所有数据库中的所有登录,你可以使用这个选项
AllLoginsFromSelectedDatabases:你可以使用这个选项来转移特定数据库中的所有SQL登录信息
SelectedLogins:如果您想转移选定的登录,您可以使用此选项。
LoginsList:当您从LoginsToTransfer下拉框中选择SelectedLogins 时,该选项将被激活。当您点击LoginsList时,一个名为Select Login的对话框打开。您可以从列表中选择合适的登录者
数据库列表:当你从LoginsToTransfer下拉框中选择AllLoginsFromSelectedDatabases时,这个选项会启用。当你点击DatabaseList时,一个名为Select Databases的对话框打开。你可以从列表中选择适当的数据库
在我们的演示中,我们要复制选中的登录,所以选择SelectedLogins。
它启用LoginsList集合。点击它。另一个对话框打开,包含Nisarg-PC\SQL01的所有用户。
选择用户,然后点击确定,关闭对话框。
配置其他选项
在选项部分,我们得到以下选项。
IfObjectExists:你选择登录已经存在时的操作。你可以选择以下任何一项。
FailTask:这将终止执行,并将任务的状态报告为失败。
覆盖:SQL登录将被覆盖
跳过:不做任何改变
CopySIDs:每个Login都与一个sid相关联。如果您想将SID与Login一起复制,请选择True。如果你不想复制SID,请选择False。
在我们的演示中,我们将跳过在Nisarg-PC\SQL01上创建的用户的转移;因此,从IfObjectExists下拉框中选择Skip。我们想复制SIDs,所以从CopySIDs下拉框中选择True。
Transfer Logins任务编辑器看起来像下面的图片。
点击确定保存配置并关闭对话框。
让我们配置通知操作员任务,这样我们就能在转移登录任务完成时收到一封邮件。
配置通知操作员任务
首先,从SSIS工具箱中拖出通知操作员任务,把它放到控制流表面,把它重命名为发送电子邮件,然后双击它进行配置。
首先,我们必须配置已创建操作员的服务器之间的连接。要做到这一点,点击通知操作员任务对话框中的新建。另一个对话框 "连接属性 "就会打开。指定以下参数的适当值。
连接名称:指定所需的连接名称。在我们的演示中,我将其命名为SQLConnection。
服务器名称:指定创建操作员的主机名。在Nisarg-PC/SQL01服务器上,我创建了一个名为DBASupport的操作员。
登录信息:指定认证方法。在这个演示中,我们使用的是windows认证
点击 "确定",关闭对话框。
关闭对话框,保存连接属性。
在通知信息主题文本框中指定电子邮件的主题。在我们的演示中,主题行是 SQL登录的迁移状态。
在通知信息正文中指定电子邮件正文。在我们的演示中,邮件正文如下。
Hello DBASupport,
The SQL Logins have been transferred successfully.
最后,通知操作员任务看起来像下面的图片。
这封邮件必须在所有工作都迁移成功后发送。要做到这一点,我们必须用一个连接器来连接这两个任务。该包看起来如下。
Transfer SQL Logins任务已经配置成功了。
小结
在本系列的这篇文章中,我们了解了SSDT 2017的转移SQL登录任务。我已经解释了我们如何配置它以在Nisarg-PC\SQL01和Nisarg-PC\SQL02之间传输SQL登录。在下一篇文章中,我们将学习转移数据库任务,以及如何使用它在SQL Server的两个实例之间复制整个数据库,并使用SSDT 2017创建一个包。
作者:迪鲁宾
链接:https://juejin.cn/post/7170611658664968206