本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 連接 Microsoft SQL Server AWS Schema Conversion Tool
您可以使用 AWS SCT 將結構描述、資料庫程式碼物件和應用程式程式碼從 SQL Server 轉換為下列目標:
Amazon RDS for MySQL
Amazon Aurora MySQL-Compatible Edition
Amazon RDS for PostgreSQL
Amazon Aurora PostgreSQL-Compatible Edition
Amazon RDS for SQL Server
Amazon RDS for MariaDB
注意
AWS SCT 不支援使用 Amazon RDS for SQL Server 做為來源。
您可以使用 AWS SCT 建立評估報告,以將結構描述、資料庫程式碼物件和應用程式程式碼從 SQL Server 遷移至 Babelfish for Aurora PostgreSQL,如下所述。
主題
將 Microsoft SQL Server 作為來源的權限
Microsoft SQL Server 做為來源所需的權限如下:
-
VIEW DEFINITION
-
VIEW DATABASE STATE
VIEW DEFINITION
權限可讓具有公開存取權的使用者查看物件定義。 AWS SCT 會使用VIEW DATABASE STATE
權限來檢查 SQL Server Enterprise Edition 的功能。
對您要轉換其結構描述的每個資料庫重複授予。
此外,請授與 master
資料庫的下列權限:
-
VIEW SERVER STATE
-
VIEW ANY DEFINITION
AWS SCT 使用 VIEW SERVER STATE
權限來收集伺服器設定和組態。請確定您授予檢視端點VIEW ANY DEFINITION
的權限。
若要讀取 Microsoft Analysis Services 的相關資訊,請在 master
資料庫上執行下列命令。
EXEC master..sp_addsrvrolemember @loginame = N'
<user_name>
', @rolename = N'sysadmin'
在上述範例中,將
預留位置取代為您之前授予 權限的使用者名稱。<user_name>
若要讀取 SQL Server Agent 的相關資訊,請將您的使用者新增至SQLAgentUser
角色。在 msdb
資料庫上執行下列命令。
EXEC sp_addrolemember
<SQLAgentRole>
,<user_name>
;
在上述範例中,請將
預留位置替換為 SQL Server 代理程式角色的名稱。然後將<SQLAgentRole>
預留位置取代為您之前授予 權限的使用者名稱。如需詳細資訊,請參閱《Amazon RDS 使用者指南》中的「將使用者新增至 SQLAgentUser 角色」。<user_name>
若要偵測日誌傳送,請授與 msdb
資料庫的 SELECT on dbo.log_shipping_primary_databases
權限。
若要使用 DDL 複寫的通知方法,請授予來源資料庫RECEIVE ON
的權限。在此範例中,請將 <schema_name>
.<queue_name>
預留位置替換為您資料庫的結構描述名稱。接著將 <schema_name>
預留位置替換為佇列資料表的名稱。<queue_name>
使用 Microsoft SQL Server 做為來源時使用 Windows 身分驗證
如果您的應用程式執行於以 Windows 為基礎的內部網路,您可以在存取資料庫時使用 Windows 驗證。Windows 驗證使用目前在作業系統執行緒上建立的 Windows 身分存取 SQL Server 資料庫。接著您可將 Windows 身分對應到 SQL Server 資料庫和許可。若要使用 Windows 驗證連接到 SQL Server,您必須指定應用程式使用正在使用的 Windows 身分。您也必須授予 Windows 身分對 SQL Server 資料庫的存取。
SQL Server 有兩種存取模式:Windows 驗證模式和混合模式。Windows 驗證模式可啟用 Windows 驗證並停用 SQL Server 驗證。混合模式可同時啟用 Windows 驗證和 SQL Server 驗證。Windows 驗證一律可用,且無法停用。如需有關 Windows 驗證的詳細資訊,請參閱 Microsoft Windows 文件。
在 TEST_DB 中建立使用者的可能範例如下
USE [TEST_DB] CREATE USER [TestUser] FOR LOGIN [TestDomain\TestUser] GRANT VIEW DEFINITION TO [TestUser] GRANT VIEW DATABASE STATE TO [TestUser]
搭配 JDBC 連線使用 Windows 身分驗證
JDBC 驅動程式用於非 Windows 作業系統時,JDBC 驅動程式不支援 Windows 驗證。從非 Windows 作業系統連線至 SQL Server 時,不會自動指定 Windows 身分驗證登入資料,例如使用者名稱和密碼。在這種情況下,應用程式必須改用 SQL Server 身分驗證。
在 JDBC 連線字串中,integratedSecurity
參數必須指定使用 Windows 驗證連接。JDBC 驅動程式透過 integratedSecurity
連線字串參數支援 Windows 作業系統上的整合式 Windows 驗證。
使用整合式驗證
-
安裝 JDBC 驅動程式。
-
將
sqljdbc_auth.dll
檔案複製到安裝 JDBC 驅動程式之電腦的 Windows 系統路徑上的目錄。sqljdbc_auth.dll
檔案會安裝在下列位置:<安裝目錄>\sqljdbc_<version>\<language>\auth\
嘗試使用 Windows 驗證建立到 SQL Server 資料庫的連線時,您可能會收到錯誤:此驅動程式未設定使用整合式驗證。您可透過執行以下動作解決這個問題:
宣告兩個變數,指向 JDBC 的安裝路徑:
variable name: SQLJDBC_HOME; variable value: D:\lib\JDBC4.1\enu
(您的 sqljdbc4.jar 存在的位置);variable name: SQLJDBC_AUTH_HOME; variable value: D\lib\JDBC4.1\enu\auth\x86
(如果您執行 32 位元作業系統) 或D\lib\JDBC4.1\enu\auth\x64
(如果您執行 64 位元作業系統)。這是您的sqljdbc_auth.dll
所在的位置。-
sqljdbc_auth.dll
複製到執行 JDK/JRE 的資料夾。您可以複製到 lib 資料夾、bin 資料夾等。例如,您可能會複製到下列資料夾。[JDK_INSTALLED_PATH]\bin; [JDK_INSTALLED_PATH]\jre\bin; [JDK_INSTALLED_PATH]\jre\lib; [JDK_INSTALLED_PATH]\lib;
請確定您的 JDBC 程式庫資料夾中只有 SQLJDBC4.jar 檔案。從該資料夾移除任何其他 sqljdbc*.jar 檔案 (或將其複製到另一個資料夾)。如果您要將驅動程式新增為程式的一部分,請務必僅新增 SQLJDBC4.jar 做為要使用的驅動程式。
複製應用程式資料夾內的 sqljdbc_auth.dll 檔案。
注意
如果您執行 32 位元 Java 虛擬機器 (JVM),請使用 x86 資料夾中的 sqljdbc_auth.dll 檔案,即使作業系統為 x64 版本。如果您在 x64 處理器上執行 64 位元 JVM,請使用 x64 資料夾中的 sqljdbc_auth.dll 檔案。
連接到 SQL Server 資料庫時,您可以選擇 Windows 驗證或 SQL Server 驗證做為驗證選項。
以來源身分連線至 SQL Server
使用以下程序,透過 AWS Schema Conversion Tool連接到您的 Microsoft SQL Server 來源資料庫。
若要連接到 Microsoft SQL Server 來源資料庫
-
在 中 AWS Schema Conversion Tool,選擇新增來源。
-
選擇 Microsoft SQL Server,然後選擇下一步。
新增來源對話方塊隨即出現。
-
針對連線名稱,輸入資料庫的名稱。 在左側面板的樹狀目錄中 AWS SCT 顯示此名稱。
-
使用來自 的資料庫登入資料 AWS Secrets Manager 或手動輸入:
-
若要從 Secrets Manager 使用資料庫登入資料,請使用下列指示:
-
針對 AWS Secret,選擇秘密的名稱。
-
選擇填入,從 Secrets Manager 自動填入資料庫連線對話方塊中的所有值。
如需從 Secrets Manager 使用資料庫登入資料的資訊,請參閱 在 AWS Secrets Manager 中設定 AWS Schema Conversion Tool。
-
-
若要手動輸入 Microsoft SQL Server 來源資料庫連線資訊,請使用下列指示:
參數 動作 伺服器名稱 輸入您來源資料庫伺服器的網域名稱服務 (DNS) 名稱或 IP 地址。
您可以使用 IPv6 地址通訊協定連線到來源 SQL Server 資料庫。若要這樣做,請確定您使用方括號輸入 IP 地址,如下列範例所示。
[2001:db8:ffff:ffff:ffff:ffff:ffff:fffe]
伺服器連接埠 輸入用於連接到來源資料庫伺服器的連接埠。
執行個體名稱 輸入 SQL Server 資料庫的執行個體名稱。若要尋找執行個體名稱,請在 SQL Server 資料庫上執行查詢
SELECT @@servername;
。身分驗證 從 Windows 身分驗證和 SQL Server 身分驗證中選擇身分驗證類型。
使用者名稱和密碼 輸入資料庫登入資料以連線至來源資料庫伺服器。
AWS SCT 只有在您選擇連線到專案中的資料庫時, 才會使用密碼來連線至來源資料庫。為了防止公開來源資料庫的密碼, AWS SCT 預設不會存放密碼。如果您關閉 AWS SCT 專案並重新開啟,系統會視需要提示您輸入密碼以連線至來源資料庫。
Use SSL (使用 SSL) 選擇此選項,使用 Secure Sockets Layer (SSL) 連線至您的資料庫。在 SSL 標籤上提供下列適用的額外資訊:
-
信任伺服器憑證:選取此選項可信任伺服器憑證。
-
信任存放區:包含憑證的信任存放區位置。若要讓此位置出現在全域設定區段中,請務必新增它。
存放密碼 AWS SCT 會建立安全保存庫來存放 SSL 憑證和資料庫密碼。啟用此選項可讓您存放資料庫密碼,並快速連接到資料庫而無需輸入密碼。
Sql Server 驅動程式路徑 輸入用於連接至來源資料庫的驅動程式路徑。如需詳細資訊,請參閱安裝 的 JDBC 驅動程式 AWS Schema Conversion Tool。
如果您在全域專案設定中存放驅動程式路徑,驅動程式路徑不會顯示在連線對話方塊中。如需詳細資訊,請參閱在全域設定中存放驅動程式路徑。
Windows 身分驗證程式庫 輸入
sqljdbc_auth.dll
檔案的路徑。根據預設,此檔案會安裝在下列位置:<installation directory of the JDBC driver>
sqljdbc_<version>
\<language>
\auth\ -
-
-
選擇測試連線來驗證 AWS SCT 可以連接到您的來源資料庫。
-
選擇連線以連線至來源資料庫。