阅读 19

如何使用SSDT 2017在SQL Server实例之间传输SQL登录信息

在这篇文章中,我们将学习如何使用SSDT 2017将SQL Logins复制到另一个实例。

演示设置

为了演示,我在Nisarg-PC\SQL01服务器中创建了以下用户。

  1. Apptracer

  2. Nisarg Upadhyay

  3. Nirali Upadhyay

  4. 应用程序用户

要创建登录,请运行脚本。

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。

New SSIS package in SSDT2017

为了转移SQL登录,我们使用转移登录任务。从SSIS工具箱中拖动Transfer Login Task,并把它放在控制流表面。

Transfer Login Task in SSDT 2017

现在,让我们来配置它。

配置转移登录任务

要配置,双击转移登录任务。一个名为Transfer Logins Task editor的对话框打开。点击Logins,可以看到以下配置参数。

  1. 源连接和目标连接

  2. 你想转移的登录信息

  3. 选项

让我们来配置源和目标连接。

配置源连接和目的地连接

要配置源连接,点击SourceConnection,选择New Connection。

New Source connection

在SMO连接管理器编辑器中,在服务器名称中指定Nisarg-PC\SQL01,并选择windows认证来登录服务器。

SMO Connection Manager Editor

点击 "确定 "保存连接并关闭对话框。要配置源连接,点击SourceConnection,选择New Connection。

New Destination connection

同样,对于目标连接,在服务器名称中指定Nisarg-PC\SQL02,并选择windows认证登录到服务器上。

SMO Connection Manager Editor

连接部分看起来像下面的图片。

Connection Section

选择要传输的SQL登录信息

在登录部分,有三个选项。

  1. LoginsToTransfer:这个选项用于选择你想转移的SQL登录。这个选项有以下几个选项。

    1. AllLogins:如果你想转移所有数据库中的所有登录,你可以使用这个选项

    2. AllLoginsFromSelectedDatabases:你可以使用这个选项来转移特定数据库中的所有SQL登录信息

    3. SelectedLogins:如果您想转移选定的登录,您可以使用此选项。

  2. LoginsList:当您从LoginsToTransfer下拉框中选择SelectedLogins 时,该选项将被激活。当您点击LoginsList时,一个名为Select Login的对话框打开。您可以从列表中选择合适的登录者

  3. 数据库列表:当你从LoginsToTransfer下拉框中选择AllLoginsFromSelectedDatabases时,这个选项会启用。当你点击DatabaseList时,一个名为Select Databases的对话框打开。你可以从列表中选择适当的数据库

在我们的演示中,我们要复制选中的登录,所以选择SelectedLogins

Logins To transfer

它启用LoginsList集合。点击它。另一个对话框打开,包含Nisarg-PC\SQL01的所有用户。

Select Logins

选择用户,然后点击确定,关闭对话框。

配置其他选项

在选项部分,我们得到以下选项。

  1. IfObjectExists:你选择登录已经存在时的操作。你可以选择以下任何一项。

    1. FailTask:这将终止执行,并将任务的状态报告为失败。

    2. 覆盖:SQL登录将被覆盖

    3. 跳过:不做任何改变

  2. CopySIDs:每个Login都与一个sid相关联。如果您想将SID与Login一起复制,请选择True。如果你不想复制SID,请选择False。

在我们的演示中,我们将跳过在Nisarg-PC\SQL01上创建的用户的转移;因此,从IfObjectExists下拉框中选择Skip。我们想复制SIDs,所以从CopySIDs下拉框中选择True。

Select Options

Transfer Logins任务编辑器看起来像下面的图片。

Transfer Logins Task Editor

点击确定保存配置并关闭对话框。

让我们配置通知操作员任务,这样我们就能在转移登录任务完成时收到一封邮件。

配置通知操作员任务

首先,从SSIS工具箱中拖出通知操作员任务,把它放到控制流表面,把它重命名为发送电子邮件,然后双击它进行配置。

Drag and Drop Notify operator task in SSDT 2017

首先,我们必须配置已创建操作员的服务器之间的连接。要做到这一点,点击通知操作员任务对话框中的新建。另一个对话框 "连接属性 "就会打开。指定以下参数的适当值。

  1. 连接名称:指定所需的连接名称。在我们的演示中,我将其命名为SQLConnection。

  2. 服务器名称:指定创建操作员的主机名。在Nisarg-PC/SQL01服务器上,我创建了一个名为DBASupport的操作员。

  3. 登录信息:指定认证方法。在这个演示中,我们使用的是windows认证

点击 "确定",关闭对话框。

Email operator Connection

关闭对话框,保存连接属性。

通知信息主题文本框中指定电子邮件的主题。在我们的演示中,主题行是 SQL登录的迁移状态。

通知信息正文中指定电子邮件正文。在我们的演示中,邮件正文如下。

Hello DBASupport,

The SQL Logins have been transferred successfully.


最后,通知操作员任务看起来像下面的图片。

Select Operator

这封邮件必须在所有工作都迁移成功后发送。要做到这一点,我们必须用一个连接器来连接这两个任务。该包看起来如下。

SSIS package

Transfer SQL Logins任务已经配置成功了。

小结

在本系列的这篇文章中,我们了解了SSDT 2017的转移SQL登录任务。我已经解释了我们如何配置它以在Nisarg-PC\SQL01和Nisarg-PC\SQL02之间传输SQL登录。在下一篇文章中,我们将学习转移数据库任务,以及如何使用它在SQL Server的两个实例之间复制整个数据库,并使用SSDT 2017创建一个包。


作者:迪鲁宾
链接:https://juejin.cn/post/7170611658664968206

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐