要約
以下のコマンドをコピー先のSQL Serverで実行する
CREATE database [コピー先DB名] AS COPY OF [コピー元SQL Server名].[コピー元SQL Database名]
※ 以下注意点
- コピー元のSQL Serverにコピー先SQL Serverのログインユーザーと同じユーザー名、同じパスワードのユーザーを作成しておく必要がある
- 上記のユーザーは両方のSQL Serverで**
dbmanager
ロールかサーバー管理者**である必要がある - 上記のユーザーはコピー元SQL Databaseで**
db_owner
ロール**である必要がある
ちょっと詳しく
コピー元SQL Server、SQL Databaseとコピー先SQL Server、ログイン情報を以下のように仮定します。
-
コピー元SQL Server
- Server名:
oldserver
- コピー元SQLDB名:
olddatabase
- Server名:
-
コピー先SQL Server
- Server名:
newserver
- ログインユーザー名:
newserveradmin
(サーバー管理者) - ログインユーザーパスワード:
fV7pSNBr
- Server名:
1. コピー元SQL Serverにログインユーザーを作成
コピー元SQL Server(oldserver
)にコピー先SQL Serverのログインユーザーと同名のログインを作成します。SSMSやAzure Dara Studioなどでoldserver
にログインして以下のSQLクエリを実行します。
USE master;
CREATE LOGIN newserveradmin
WITH PASSWORD = 'fV7pSNBr'
masterDBにユーザーも作成します。この時ロールをdbmanager
にしておく必要があります。
USE master;
CREATE USER newserveradmin FOR LOGIN newserveradmin;
ALTER ROLE "dbmanager" ADD MEMBER newserveradmin;
2. コピー元SQL Databaseにユーザーを作成
コピー元SQL Database(今回はolddatabase
)にもユーザーを作成します。この時のロールはdb_owner
にする必要があります。以下のSQLクエリを実行します。
USE master;
CREATE USER newserveradmin FOR LOGIN newserveradmin;
ALTER ROLE "db_owner" ADD MEMBER newserveradmin;
3. SQL Databaseをコピー
SSMSやAzure Dara Studioなどでコピー先SQL Server(newserver
)にログインします。ログインするユーザーは先ほどコピー元SQL Serverに作成したnewserveradmin
で。
そして以下のSQLクエリを実行します。
CREATE database newdatabase AS COPY OF oldserver.olddatabase