2011年2月17日

SQLAzure/SQLServer コマンド集

忘れそうなので、とりあえずメモ

  • 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 件のコメント:

コメントを投稿