

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Microsoft SQL Server 数据库作为 DMS 架构转换的源
<a name="data-providers-sql-server"></a>

您可以使用 SQL Server 数据库作为 DMS 架构转换的迁移源。

您可以使用 DMS 架构转换，将数据库代码对象从 SQL Server 转换为以下目标：
+ Aurora MySQL
+ Aurora PostgreSQL
+ RDS for MySQL
+ RDS for PostgreSQL

有关支持的 SQL Server 数据库版本的信息，请参阅 [DMS 架构转换的源数据提供程序](CHAP_Introduction.Sources.md#CHAP_Introduction.Sources.SchemaConversion)。

有关在源 SQL Server 数据库中使用 DMS 架构转换的更多信息，请参阅 SQL Server 到 [MySQL 的迁移 step-by-step演练](https://docs.aws.amazon.com/dms/latest/sbs/schema-conversion-sql-server-mysql.html)。

## 将 Microsoft SQL Server 用作源的权限
<a name="data-providers-sql-server-permissions"></a>

下面列出了使用 Microsoft SQL Server 作为源所需的权限：
+ VIEW DEFINITION
+ VIEW DATABASE STATE

`VIEW DEFINITION` 权限允许具有公共访问权限的用户查看对象定义。DMS 架构转换使用 `VIEW DATABASE STATE` 权限检查 SQL Server 企业版的功能。

对要转换其架构的每个数据库重复以上授权。

此外，授予针对 `master` 数据库的以下权限：
+ VIEW SERVER STATE
+ VIEW ANY DEFINITION

DMS 架构转换使用 `VIEW SERVER STATE` 权限收集服务器设置和配置。请确保已授予查看数据提供程序的 `VIEW ANY DEFINITION` 权限。

要读取有关 Microsoft 分析服务的信息，请在 `master` 数据库上运行以下命令。

```
EXEC master..sp_addsrvrolemember @loginame = N'<user_name>', @rolename = N'sysadmin'
```

在上例中，将 `<user_name>` 占位符替换为您之前授予其所需权限的用户名。

要阅读有关 SQL Server 代理的信息，请将您的用户添加到 SQLAgent用户角色。在 `msdb` 数据库上运行以下命令。

```
EXEC sp_addrolemember <SQLAgentRole>, <user_name>;
```

在上例中，将 `<SQLAgentRole>` 占位符替换为 SQL Server Agent 角色的名称。然后，将 `<user_name>` 占位符替换为您之前授予其所需权限的用户名。有关更多信息，请参阅 *Amazon RDS SQLAgent 用户指南中的向用户*[角色添加](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.Agent.html#SQLServerAgent.AddUser)用户。

要检测日志传输，请在 `msdb` 数据库上授予 `SELECT on dbo.log_shipping_primary_databases` 权限。

要使用数据定义语言（DDL）复制的通知方法，请在源数据库上授予 `RECEIVE ON <schema_name>.<queue_name>` 权限。在本例中，将 `<schema_name>` 占位符替换为数据库的架构名称。然后，将 `<queue_name>` 占位符替换为队列表的名称。