Your SlideShare is downloading. ×
Sql azure入門
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Sql azure入門


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide
  • Get SSMS 2008 R2 at
  • Rather than using a REST API like the other Azure storage services, SQL Azure is accessed via Tabular Data Stream (TDS), the 同じ protocol used by Microsoft SQL Server (operating over port TCP/1433). To help protect thedata, the SQL Azure firewall prevents all access to your SQL Azure server until you specify which computers have permission. The firewall grants access based on the originating IP address of each request. Initially, all access to your SQL Azure server is blocked by the SQL Azure firewall; connection attempts originating from the Internet or Windows Azure will not be able to reach your SQL Azure server. In order to begin using your SQL Azure server, you must go to the SQL Azure Portal and specify one or more firewall settings that enable access to your SQL Azure server. Use the firewall settings to specify which IP address ranges from the Internet are allowed, and whether or not Windows Azure applications can attempt to connect to your SQL Azure server.
  • Key point – SQL Azure uses the 同じ familiar, proven authentication and authorization model used by Microsoft SQL server.Many databases contain sensitive data, so it is essential to carefully control access. This is especially important in a multi-tenant application that involves users from different customers who must be isolated from each other. SQL Azure provides the 同じ set of security principals that are available in SQL Server with SQL Server Authentication. You can use these to authorize access and secure your data:SQL Server Logins: Used to authenticate access to SQL Azure at the server level.Database Users: Used to grant access to SQL Azure at the database level.Database Roles: Used to group users and grant access to SQL Azure at the database level.
  • Managing security at the database-level in SQL Azure is almost identical to Microsoft SQL Server, with differences only in the parameters available.The database-level permission model in SQL Azure is 同じ as an on-premise instance of SQL Server:Logins associated to users in databases. Users may be part of one or more database roles.Permissions granted to roles or directly to users.Auditing feature is not supported in the current version of SQL Azure. SQL Azure does not currently support the Transparente Data Encryption (TDE) feature available in Microsoft SQL Server.SQL Azure forces SSL encryption with all client connections and hence data is secured over the wire. When defining the connection string to SQL Azure, developers should use the following parameters:Encrypt=True specifies that SSL must be used in the connection.TrustServerCertificate specifies whether encryption occurs if there is no verifiable server certificate. Setting the value to False forces the client to verify the validity of the certificate presented by SQL Azure.
  • TechEd 2010 Announcements -
  • This slide shows the some of thesimilarities and differences between the SQL Server and the Azure SQL security capabilities.While Microsoft SQL Server supports Windows Integrated authentication, using Active Directory credentials for user login, SQL Azure Database supports only SQL Server Authentication. Windows Authentication (integrated security) is not supported. Both Microsoft SQL Server and SQL Azure use the 同じ authorization model, with users and roles created in each database and associated to the user logins. Microsoft SQL Server has fixed server-wide roles such as serveradmin, securityadmin and dbcreator. These roles do not exist in SQL Azure. Instead SQL Azure has a loginmanager role for creating logins and dbmanager role for creating and manage databases. These roles can only be assigned to users in the master database. Access to both SQL Server and SQL Azure happens on the wire using the 同じ Tabular Data Stream (TDS) application layer protocol, protected using the Secure Sockets Layer (SSL) protocol, over TCP port 1433. Use of SSL is optional for Microsoft SQL Server and mandatory for SQL Azure.In SQL Server any IP address-based access control needs to be done at the host or network level, using a host firewall or a network firewall. SQL Azure has a built-infirewall that prevents all access to your SQL Azure server until the customer specifies which computers have permission. The firewall grants access based on the originating IP address of each request. SQL Server provides realtime encryption of the stored data at page level, using its Transparent Data Encryption (TDE) feature. Native encryption is currently not available for SQL Azure.
  • Transcript

    • 1. 第2回 SQLTO & TechParty 2011SQL Azure ~ 入門から2011年8月現在まで
    • 2. 自己紹介大和屋 貴仁SIerさんで、運用保守してます2010年にSQLAzure.jpドメイン取得 SQL Azureの情報発信を始める 商標的に大丈夫? MSに怒られるかも……怒られたら逃げよう 匿名でやってました MVP受賞したから、もう大丈夫?? 日本初!SQL Azure MVPは 覆面エバンジェリスト?! 2
    • 3. 蒼の王座 3
    • 4. SQL Azureを知っていますか? SQL Azureは、 SQL Serverのクラウドサービス 4
    • 5. SQL Azure誕生経緯SQL Azureは、SQL Server 2008から どんどんガラパゴス化? → しません! 5
    • 6. SQL ServerとSQL Azureの関係 SQL Server SQL Azure 次世代データベースプラットフォーム アーキテクチャ 6
    • 7. SQL Azure構成図Data Sync レポーティング Analytics データベース データマーケット 7
    • 8. SQL Azureの操作 SQL Azureは、 ブラウザでサーバ管理をする 8
    • 9. サーバの設定にアクセス 9
    • 10. データベースの作成以前は、http://sqlazurelabs.comで公開されていたHouston 10
    • 11. Silverlight SQL Manager基本的なデータベース管理機能 Table, Views, Stored Procedureの作成 クエリの実行 データベースオブジェクトの管理 11
    • 12. SQL Server 2008 R2Management Studio 12
    • 13. SSMSで接続 13
    • 14. SQL Azureの裏側 SQL Azureの動作 アーキテクチャーを見ていく 14
    • 15. 世界6か所のDC 15
    • 16. 自由自在なスケールアウトSQL Azureサーバーは物理サーバではない 16
    • 17. 現時点のSQL Azureスケールアウトデータベースの柔軟なプロビジョニング CREATE DATABASE and go 仮想でも、サーバでも無い使用料に応じたビジネスモデル物理管理は無し 高可用性、パッチ、メンテナンスはビルトイン
    • 18. 動作方法 アプリケーション ツール ODBC ADO.NET TDS SQL Azure サーバー Connection Routing Billing Provisioning SQL SQL SQL Server Server Server SQL SQL SQL Azure Azure Azure Fabric Fabric Fabric Server Server Server 18
    • 19. リソース共有モデルSQLデータベースは共有インフラ一般的なハードウェアを使用した大規模分散クラスター仮想環境では無く物理マシンにホスト 19
    • 20. 物理マシンとDBの関係 物理マシン SQLインスタンス • SQL DB – 複数ユーザのDB DBを3つ作成したとしても…… SQL Azure ゲートウェイサービススケーラビリティ&アベイラビリティ:ファブリック、フェイルオーバー、ロードバ 20 ランス
    • 21. サイズ 21
    • 22. 上限サイズweb:1, 5GBBusiness:10, 20, 30, 40, 50GB 22
    • 23. 可用性3重化による自動保護バックアップ プライマ リ セカンダ リ 23
    • 24. セキュリティ(Dos Gard)FirewallSQL Server認証 24
    • 25. SQL Azure Firewall インターネット  SQL Azure用のIPアドレス ベースのアクセスコント ロール 初期値はすべてのIPを拒否  SQL Azure Portal、管理API を使用して設定  Windows Azureにホストさ れたアプリケーションから のアクセス許可・非許可の 設定 25
    • 26. FirewallにアクセスできるIPの設定SQL Azureで必須の作業 アクセス可能なIPの登録 26
    • 27. FirewallにアクセスできるIPの設定T-SQLからルール追加が可能 →sp_set_firewall_ruleexec sp_set_firewall_rule NWayneBerry,, 27
    • 28. セキュリティモデル一般的なSQLセキュリティモデルを使用 ログインとユーザやロールをマッピングした認証 SQLオブジェクトをユーザとロールで承認標準的なSQL認証をサポート ユーザ名とパスワード セキュリティモデルはオンプレミスのSQLと 互換性がある
    • 29. SQL Azure セキュリティ認証と承認モデルSQL Azureは、Mirosoft SQL Serverで使用したのと同じような実績のある認証と承認モデルを使用している SQL Serverロ サーバレベルでの認証接続、権限設定 グイン Databaseユーザ データベースレベルでの認証接続、権限設定 Databaseロール データベースレベルでのユーザグループと権限 設定 29
    • 30. SQL Azureへ接続SQL Azureの接続文字列は、以下のように通常のSQLと同じアプリケーションから直接データベースへ接続する “Initial Catalog = <db>” in connection string データベースの切り替え文は未サポート (USE <db>は使用できない) 1つのバッチに1つしか記述できないコマンドがある • Create/Alter/Drop Database & Create/Alter/Drop Login, & Create/Alter USER with FOR/FROM LOGIN暗号化セキュリティ Set Encrypt = True, only SSL connections are supported TrustServerCertificate = False, avoid Man-In-The-Middle-Attack!認証用ユーザ名のフォーマット: ADO.Net: Data; User ID=user@server;Password=password;...Firewallのルールを最初に設定する! 30
    • 31. 承認、監査、暗号化のサポートSQL Azureは、オンプレミスのSQL Serverと同じデータベースレベルの権限モデル現在のバージョンでは、監査は未サポートまだ標準で暗号化(TDE)をサポートしていないAzureは SSL暗号化と接続文字列での証明書チェックのオプション Encrypt=True;TrustServerCertificate=Fals e 31
    • 32. 価格Edition Web Business Bandwidth最大 1 GB 980円/月 n/a 受信9.8円 送信14.7円 アジア 受信9.8円 送信19.6円最大 5 GB 4900円/月 n/a 同じ最大 10 GB n/a 9800円/月 同じ最大 20 GB n/a 19600円/月 同じ最大 30 GB n/a 29400円/月 同じ最大 40 GB n/a 39200円/月 同じ最大SQL Azure Development Accelerator Core - $74.95 50 GB n/a 49000円/月 同じ 32
    • 33. バックアップ2種類のリスク: ディザスターリカバリとSQLによる破壊バックアップ機能は、現時点で未サポート次バージョンの最優先機能提供予定 コードで他のロケーションへのデータ移行 ファイルエクスポート もしかするとBCPかSSIS 33
    • 34. Database Copy the first step in backup supportfor SQL Azure データベースのスナップショットを 簡単に作成可能 34
    • 35. Database Copyの特徴同じデーターセンター内にCopy可能 同じサーバー内にコピー可能 別のサーバー内にコピー可能T-SQLを使用し非同期実行 T-SQL発効後セッションが切れても 処理を継続するトランザクションコピーコピー元のダウンタイムは無し 35
    • 36. Database Copyをしてみるmasterデータベースに対してT-SQLを発行するCREATE DATABASE test2AS COPY OF Server1.testコピー先のサーバーにて実行。コピー先のtest2にスナップショットを作成する。コピー元は、Server1のtestとなる。 36
    • 37. 実行状況のモニタリングselect name, state, state_desc fromsys.databases コピー中 37
    • 38. 実行状況のモニタリングselect * fromsys.dm_database_copies コピー状況 38
    • 39. Database Copyのポイントコピー中は負荷がかかるので、実行する時間に注意。当面のバックアップ用途に使用可能。 アプリのバージョンアップ前 スキーマの更新前 データパッチの実行前 39
    • 40. マイグレーション選択肢• スクリプト生成ウィザード • SQL Azureと互換性のあるスキーマやデータのSQLスクリプトの生成• SQL Serverマイグレーションアシスタント (ダウンロード可能) • MySQL, Oracle, Access, SQL Server...• SQLAzureMW 日本語化 • SQL Azureで未サポートの機能抽出に便利 • 効率的なデータ移行 • 非公式サポート Unit of Deployment• データ層アプリケーションコンポーネント(DAC) Schema LOGICAL PHYSICAL • T-SQLによる新たなデプロイ単位インストール、アンインストールのサ Tables, Views, Users, Logins, Constraints, SProcs, Indexes UDFs, ポート Future - DAC Deployment Profile • ポリシーによる制御 Deployment Requirements, Management Policies, Failover Policies
    • 41. SQLAzureMW SQL Azure Migration Wizard 41
    • 42. 日本固有の問題照合順序タイムゾーン 42
    • 43. DCと通信時間緑に塗られている箇所は、NW遅延が100ms以内のDCが2つ以上ある地域日本は黄色なので、100ms以内のDCが1つある地域 43
    • 44. SQL AzureにおけるNW遅延NW遅延は、 ユーザとアプリケーション間 アプリケーションとSQL Azure DB間レスポンス時間 44
    • 45. NW遅延の計測方法 45
    • 46. NW遅延の計測結果世界6か所のDCに対して接続したときのNW遅延を計測 46
    • 47. リソース管理と複数テナントリソースを他のユーザのDBと共有 CPU、メモリ ワーカースレッド、ネットワーク Tempdb データファイル/ログファイル他のユーザから性能影響を受ける 同じマシーンにのっている別の人 高負荷の処理をする 47
    • 48. 複数テナント管理機能全ユーザが快適に使用できるように ロードバランサー スロットルサービス(制限サービス) 48
    • 49. ロードバランサーリソース利用のバランスを取る 物理マシンの過剰利用を最小限にする 制限を減少させるSwapと物理マシンの移動 49
    • 50. Swapと移動Swap プライマリデータベースの変更 プライマリデータベースの役割をセカ ンダリデータベースに移動物理マシンの移動 ホスト場所を別の物理マシンにコピー し移動させる 50
    • 51. スロットル(制限)サービスシステムリソースを大量に長い時間使用されることからマシンを守る 実際のリソース使用量と安全閾値をリアルタイムに 比較評価 最もリソースを使用しているDBを制限 (ソフトな制限) もし無理ならすべてのDBを制限します。 (ハードな制限)新しい接続要求の受付を停止リソースを過剰消費している処理を中断 51
    • 52. エラーメッセージ“The service is currently busy. Retrythe request after 10 seconds.Code: %d.” 52
    • 53. 制限コードのデコード方法 53
    • 54. 54
    • 55. 制限シナリオ例1顧客AがマシンのCPUを30%使用している顧客Bが同じマシンで、追加で70%のCPUを開始した 55
    • 56. 制限シナリオ例1顧客AがマシンのCPUを30%使用している顧客Bが同じマシンで、追加で70%のCPUを開始した顧客Bは制限されます解決方法:ロードバランサーは、このマシンからAまたはBを移動させる制限トリガー:顧客B制限対象:顧客B公平性:公平に顧客Bを制限しますBは、AよりもCPUを使用しているこのマシーンの制限は、Bがトリガーとなっている。 56
    • 57. 制限シナリオ例2顧客Aがマシン上でCPUを70%使用している顧客Bが同じマシンで、追加で30%のCPUを開始した 57
    • 58. 制限シナリオ例2顧客Aがマシン上でCPUを70%使用している顧客Bが同じマシンで、追加で30%のCPUを開始した顧客Aは制限されます解決方法:ロードバランサーは、このマシンからAまたはBを移動させる制限トリガー:顧客B制限対象:顧客A公平性:顧客Aを制限するのは公平では無いこのマシーンの制限は、Bがトリガーとなっている。 58
    • 59. 制限シナリオ例3マシン上にアクティブなワークロードが無い顧客AがCPU100%を使用し、何度も制限されている 59
    • 60. 制限シナリオ例3マシン上にアクティブなワークロードが無い顧客AがCPU100%を使用し、何度も制限されている顧客Aは制限されます解決方法:無し。どこに配置しても制限されます。顧客AはマシンのCPUを使用しすぎます。制限トリガー:顧客A制限対象:顧客A公平性:システム観点からは公正だが、顧客は幸せでは無い顧客Aは、SQL Azureマシンに適合するように、最適化とリソース使用量を減らす必要があります。 60
    • 61. SQL Azure 互換性現在サポートしている 現時点は未サポート• テーブル、インデックス、 • データ型 ビュー – スパース列, Filestream• ストアドプロシージャ • パーティション• トリガー• 制約 • フルテキストインデックス• Table変数, • SQL-CLR 一時tempテーブル (#t)• 空間型, HierarchyId テーブルはクラスタ化インデックスが必須 61
    • 62. SQL Azure セキュリティ伝統的な SQL Server vs SQL Azure • SQL認証とWindows 認証 • SQL認証のみ使用でき、 Windows認証は使用できない • データベースユーザとロール による制御 • データベースユーザとロール による制御 • serveradmin, securityadmin ,dbcreatorのようなサーバロー • MasterDBにサーバロールlogin ル manager とdbmanager ロール の追加 • TCPポート 1433上のSSLとTDS経 由の接続 • TCPポート 1433上のSSLと TDS経由の接続 • ホストFirewallを使用した Firewall と IPブロッキング • SQL Azure標準のFirewall でIP ブロッキング • 標準で暗号化 (TDE)のサポート • 標準で暗号化は未サポート 62
    • 63. SQL Azure Data Sync 63
    • 64. SQL Azure Data Sync – 主要機能 柔軟にスケール 成長に応じたリソースをスケールさせるサービス コードなしで同期設定 同期するデータの定義が簡単 スケジュール同期 同期させるデータを選択する方法 衝突のハンドリング 複数個所で同じデータを変更された場合の検知 ロギングとモニタリング 問題の監視とデータの追跡が可能 64
    • 65. オンプレミスとクラウドの双方向同期SQL ServerとSQL Azureの同期 メリット SQL• クラウドへの置き換えよりも Azure クラウドへ拡張するシナリオ• 投資した既存のインフラを使 用しつつクラウドを活用する Sync ことができる• エンタープライズをクラウド で補完する
    • 66. 小売店や支店へのデータ提供SQL AzureからSQL Serverへの同期 メリット• 支店や小売店などとデータを共有 する。データをエンドユーザの近 くに置く• 遅延が少ない – データ接続にラウ SQL ンドトリップが必要なし• 高可用性 – サーバがこけてもアプ Azure リを使用可能• ネットワーク帯域の減少 – ほとん どのデータ接続はローカル
    • 67. 同期シナリオ オフライン アプリケーション オンプレミス Sync アプリケーション Sync SQL Azure Database 支店 小売店 67
    • 68. 2011年8月時点でのロードマップ 68
    • 69. 2011年5月にリリースされた機能1つのサブスクリプションに複数のサーバを追加できるDACフレームワークによるインポートとエクスポートSQL Azure サーバAPI 69
    • 70. 2011年7月にリリースされた機能Co-Adminの設定データベースエンジンをDenaliエンジンへ切り替え! エンジン番号11.XX.XXXXに変更される SSMS 2008 R2 SP1にて対応 70
    • 71. SQL AzureのCo-admin設定 71
    • 72. リリース予定の機能ポイント・タイムリストア CTP 指定した時間へデータベースを リストアできる 72
    • 73. 時期Data Sync同期設定の設定画面改善スケール対応 73
    • 74. 今年度投資内容 74
    • 75. Azure ユーザー会にご参加ください
    • 76. MSDNフォーラムWindows Azureカテゴリ レスポンスタイム 数十分~数時間 76
    • 77. 2011年4月SQL Azure 77
    • 78. SQL Azureへの要望 78
    • 79. 79
    • 80. 80
    • 81. 付録 81
    • 82. SQL Azureのサーバアドレス カスタムドメイン ユーザ名@サーバ名 82
    • 83. セッショントレースIDSQL Azureは接続毎にセッショントレースIDを付与する 83
    • 84. セッショントレースIDユニークなGUIDセッショントレースIDによって全ての接続の記録と追跡が可能障害時の問い合わせ対応に使用すると効率的 84
    • 85. セッショントレースIDT-SQLで取得可能SELECT CONVERT(NVARCHAR(36), CONTEXT_INFO()) 85