忘れそうなので、とりあえずメモ
- SQLAzureユーザー作成
*LOGINを作成(この処理はmaster DBにログインして行う)
CREATE LOGIN your_login WITH password='your_password'
*ユーザー作成(この処理は対象DBにログインして行う)
CREATE USER your_user FROM LOGIN your_login;
*スキーマ作成
CREATE SCHEMA your_schema
*ロール作成
CREATE ROLE your_role AUTHORIZATION dbo
*ロールの権限設定
GRANT ALTER, CONTROL, DELETE, EXECUTE, INSERT, REFERENCES, SELECT, TAKE OWNERSHIP, UPDATE, VIEW DEFINITION ON SCHEMA::your_schema TO your_role
*ユーザーにロール付与
EXEC sp_addrolemember 'your_role', 'your_user'
*デフォルトスキーマ設定
ALTER USER your_user WITH DEFAULT_SCHEMA = dft_schema
*デフォルトDB設定(SQLServerのみ)
Exec sp_defaultdb @loginame='your_login', @defdb='your_db'
- SQLServerバージョン、エディション確認
SELECT SERVERPROPERTY('productversion') as VersioNumber
,SERVERPROPERTY ('productlevel') as SPLevel
,SERVERPROPERTY ('edition') as ServerEdition
- データベースサイズ
*データベースサイズ確認
SELECT SUM(reserved_page_count) * 8192 FROM sys.dm_db_partition_stats
*SQLAzure最大サイズ確認
SELECT DATABASEPROPERTYEX ('bluedb' , 'MaxSizeInBytes' )
*SQLAzure最大サイズ変更
ALTER DATABASE bluedb MODIFY (EDITION='Web', MAXSIZE=5GB)
- バックアップ/復元
BACKUP DATABASE DBNAME TO DISK=’DBNAME.bak’
RESTORE DATABASE DBNAME
FROM DISK = 'DBNAME.bak'
WITH move 'DBNAME' to 'DATADIR\DBNAME.mdf',
move 'DBNAME_Log' to 'DATADIR\DBNAME_log.ldf'
- 処理時間確認
SET STATISTICS PROFILE ON;
SET STATISTICS TIME ON;
- テーブルコピー
*テーブル作成してデータコピー
SELECT * INTO DST from SRC
*既存テーブルにデータコピー
INSERT INTO DST SELECT xxx, xxx FROM SRC WHERE xxx
- データファイルのフォルダ移動
*データベースをDetach
use master
sp_detach_db 'XX'
*ファイルを新しいフォルダに移動*データベースをAttach
sp_attach 'XX' 'NEW_DIR\XX.mdf' 'NEW_DIR\XX_log.ldf'
- Linked Server
EXEC sp_dropserver 'LINKED_MYSQL', 'droplogins'
EXEC sp_droplinkedsrvlogin @rmtsrvname = 'LINKED_MYSQL', @locallogin='mysqluser';
EXEC sp_addlinkedserver @server = N'LINKED_MYSQL', @srvproduct=N'MySQL', @provider=N'MSDASQL', @provstr=N'DRIVER={MySQL ODBC 5.2a Driver} ;SERVER=127.0.0.1;DATABASE=ap_db;USER=apuser;PASSWORD=appass@01;OPTION=3'
EXEC sp_addlinkedsrvlogin @rmtsrvname = 'LINKED_MYSQL', @useself='FALSE', @locallogin='mysqluser', @rmtuser='apuser', @rmtpassword = 'appass@01';
use master
CREATE USER mysqluser FOR LOGIN mysqluser
GRANT EXECUTE ON SYS.XP_PROP_OLEDB_PROVIDER TO mysqluser;
create view department as select * from OPENQUERY(LINKED_MYSQL, 'SELECT * FROM DEPARTMENT')
create view employee as select * from OPENQUERY(LINKED_MYSQL, 'SELECT * FROM employee')
0 件のコメント:
コメントを投稿