2017年12月31日
前回のコラムに引き続き、私たちが執筆した SQL Server 2017 の 2冊目の自習書についてご案内します。
SQL Server 2017 自習書 No.2
「SQL Server 2017 on Linux」(全70ページ)
SQL Server 2016 の GA から一年半。SQL Server がついにマルチプラット フォーム対応となりました。いろいろわかりやすくまとめたつもりですので、ぜひとも Linux での SQL Server を試してみてください(本書の内容は、脱稿時10月30日までの情報です)。
ダウンロードはこちら↓からできます。
http://download.microsoft.com/download/7/2/9/729DF466-7E91-4351-AD33-029B4232A9DF/SQL_2017_SelfLearning_02_Ver1.pdf
先に目次を確認したいという方のために目次をアップしておきます。
SQL Server 2017 自習書シリーズ No.2「SQL Server 2017 on Linux」の目次
STEP 1. SQL Server 2017 on Linux の概要 5
1.1 SQL Server 2017 で提供された主な新機能 6
1.2 SQL Server 2017 on Linux の概要 7
- SQL Server 2017 on Linux でできること 7
1.3 SQL Server 2017 on Linux の性能(TPC-H など) 10
STEP 2. SQL Server 2017 on Linux 12
2.1 Docker を利用した SQL Server on Linux 13
- Let's Try 13
- SQL Server への接続(sqlcmd ツール) 18
- データベースやテーブルの作成例 19
- sqlcmd の終了、bash シェルの終了 ~exit~ 22
- コンテナーの停止、削除 22
2.2 Linux 環境への SQL Server 2017 のインストール 24
- Let's Try 24
- インストールの確認 27
- sqlcmd ツールのインストール 28
- RHEL や SUSE への SQL Server 2017 のインストール 32
2.3 SQL Server 2017 on Linux で利用できる機能/利用できない機能 33
- SQL Server 2017 on Linux で利用できる機能 33
- SQL Server 2017 on Linux では利用できない機能 37
2.4 Visual Studio Code のインストール、mssql 拡張機能 38
- Mac OS への Visual Studio Code のインストール 38
- Mac OS X への mssql 拡張機能のインストール(Mac OS X 10.12 以上が必要) 39
- Linux への Visual Studio Code/mssql 拡張機能のインストール 43
- Linux への mssql 拡張機能のインストール 44
- Visual Studio Code の配色テーマの変更 46
2.5 mssql 拡張機能で SQL Server に接続(Visual Studio Code) 47
- Let's Try 47
STEP 3. SQL Server に接続する アプリケーション開発の概要 55
3.1 アプリケーション開発の概要(Linux、Mac OS クライアント) 56
3.2 Java を利用したアプリケーション開発の概要 58
- Java のコード例 59
- Java のコード例2 ~PreparedStatement~ 62
- Maven や Hibernate を利用する場合 63
3.3 PHP を利用したアプリケーション開発の概要 64
- PHP のコード例 65
3.4 Python を利用したアプリケーション開発の概要 67
- Python のコード例(pyodbc) 67
3.5 node.js を利用したアプリケーション開発の概要 69
- tedious のコード例 69
3.6 .NET Core を利用したアプリケーション開発の概要 72
- .NET Core 2.0 のインストール 72
- .NET Core 2.0 の利用方法(Visual Studio Code がお勧め) 73
- .NET Core 2.0 のコード例(C#、ADO.NET) 76
3.7 その他の言語を利用したアプリケーション開発の概要(Ruby、Go) 79
STEP 4. アプリケーション開発者のための SQL Server の基本操作 80
4.1 アプリケーション開発者のための SQL Server の基本操作 81
- SQL Server での SQL ステートメントを記述する上での基本 81
4.2 データベースの作成、テーブルの作成 82
- データベースの作成(CREATE DATABASE) 82
- 作成したデータベースの確認(sys.databases) 83
- データベースへの接続(USE) 84
- テーブルの作成(CREATE TABLE) 84
- テーブルの削除(DROP TABLE) 85
- 作成したテーブルの一覧を取得 85
4.3 データの追加/更新/削除 87
- 大文字と小文字の区別は? ~照合順序:COLLATION~ 88
- Unicode データの扱い 90
4.4 ユーザーの作成、オブジェクト権限の設定 91
- sa(管理者アカウント)、sysadmin ロール(管理者グループ) 91
- ログイン アカウント、データベース ユーザーの作成 91
- オブジェクト権限の設定(GRANT/REVOKE/DENY) 93
- public(すべてのユーザー) 94
- db_datareader データベース ロール 95
- オブジェクト権限の一覧を取得 96
- 包含データベース(Contained Database) 97
- スキーマの作成(既定は dbo スキーマ) 99
4.5 Transact-SQL の制御構造(変数、IF、WHILE など) 101
- Transact-SQL ならではの記述(変数や IF、WHILE) 101
- Oracle PL/SQL と Transact-SQL の比較 103
- 組み込み関数の比較(Oracle、SQL Server) 104
- ビューやストアド プロシージャ 105
4.6 列ストア インデックスによる性能向上 106
- Let's Try 106
- テーブル「t1」の作成(通常のテーブル)と 1千万のデータ追加 106
- 通常テーブルでの速度チェック(GROUP BY 演算) 108
- 列ストア インデックスの作成/性能チェック 109
4.7 リンク サーバー、CSV のインポート/エクスポート 113
- リンク サーバーによるリモート データの取得 113
- CSV ファイルのインポート(bcp) 115
- CSV ファイルのエクスポート(bcp out) 117
- SSIS パッケージ(.dtsx)の実行 118
4.8 データベースのバックアップとリストア 119
- Let's Try ~完全バックアップの実行: BACKUP DATABASE~ 119
- リストアの実行 ~RESTORE DATABASE~ 120
- オブジェクト権限の確認、DB ユーザーとログインの再マッピング 122
- トランザクション ログのバックアップ(定期実行が必須。肥大化防止) 125
4.9 SQL Server Agent ジョブによる SQL の定期実行 128
- SQL Server Agent のインストール 128
- SQL Server Agent ジョブの作成 129
4.10 その他 SQL Server を利用する上での考慮事項 131
- その他の参考情報 ~Oracle からの移行~ 132
- Windows 環境から Linux 環境への移行に関して 132
4.11 AlwaysOn 可用性グループによる冗長構成 133
- クラスター レス可用性グループ(読み取りスケール アウト構成) 134
4.12 トレースフラグやメモリ使用量の制限設定(mssql.conf) 136
- トレースフラグの設定 136
- メモリ使用量の制限 136
- その他の mssql.conf の設定 137
STEP 5. SQL Server on Linux でのセキュリティ強化 138
5.1 SQL Server 2017 on Linux のセキュリティ 139
- セキュリティ機能の概要 140
5.2 動的データ マスクによる情報漏洩対策 143
- Let's Try 144
- 設定の確認 ~masked_columnsビュー~ 146
5.3 行レベル セキュリティによるセキュリティ強化 147
- Let's Try 147
- 行レベル セキュリティのためのユーザー定義関数とセキュリティ ポリシーの作成 149
- 行レベル セキュリティを無効化したい場合 151
5.4 バックアップ暗号化(Backup Encryption) 153
- Let's Try 153
- リストア 154
5.5 ネットワーク接続の暗号化(Network Encryption) 156
5.6 TDE(透過的なデータ暗号化) 157
- TDE(透過的なデータ暗号化)の設定の流れ 157
- Let's Try 157
- 別マシンでのリストアはエラー、サーバー証明書の複製 159
- サーバー証明書のバックアップとリストア 160
5.7 SQL Server Audit(監査)による操作履歴の記録 162
- Let's Try 162
- 監査ログの参照 ~fn_get_audit_file~ 165
- その他のサーバー監査の仕様 166
5.8 Always Encrypted による列データの暗号化 168
- Let's Try 168
- 暗号化されていることの確認、証明書(キー)の確認 172
- アプリケーションからの接続(Java、Python、PHP、C# など) 174
- Always Encrypted の内部動作(接続モジュールが暗号化/復号化を実施) 177
- Azure Key Vault に証明書(マスタ キー)を格納する場合 178
- おわりに 182
■ おわりに
ちょうど 2冊目の自習書の脱稿の後に、SQL Server のパワースポットである PASS Summit に参加しました。14年も参加し続けていると、参加しないと気持ち悪いまでになってしまっていて、すっかり習慣づいてしまっています。でも、これまでの自分たちの基盤を育ててくれたことは間違いないので、とても感謝しています。
PASS Summit 2017 の参加の様子については、下記の私のブログの記事でご覧いただけます。
PASS Summit 2017 in Seattle http://d.hatena.ne.jp/miho_matsumoto/20171108/1510106710
また、松本崇博のブログにももう少し詳しい様子を載せております。
http://d.hatena.ne.jp/matu_tak/20171101/1510009754
第60回:SQL Server 2017 自習書 No.3「SQL Server 2017 Machine Learning Services」のご案内
第59回:SQL Server 2017 自習書 No.2「SQL Server 2017 on Linux」のご案内
第58回:SQL Server 2017 自習書 No.1「SQL Server 2017 新機能の概要」のご案内
第57回:SQL Server 2017 RC 版とこれまでのドキュメントのまとめ
第56回:「SQL Server 2016 への移行とアップグレードの実践」完成&公開!
第55回:書籍「SQL Server 2016の教科書 開発編」(ソシム)が発刊されました
第54回:「SQL Server 2016 プレビュー版 Reporting Services の新機能」自習書のお知らせ
第 53 回:SQL Server 2016 Reporting Services の新しくなったレポート マネージャーとモバイル レポート機能
第 52 回:SQL Server 2016 の自習書を作成しました!
第 51 回:PASS Summit と MVP Summit で進化を確信!
第 50 回:新しくなった Power BI(2.0)の自習書を作成しました!
第49 回:Excel 2016 の Power Query を使う
第 48 回:新しくなった Microsoft Power BI ! 無料版がある!!
第 47 回:「Microsoft Azure SQL Database 入門」 完成&公開!
第 46 回:Microsoft Power BI for Windows app からの Power BI サイト アクセス
第 45 回:Power Query で取得したデータを PowerPivot へ読み込む方法と PowerPivot for Excel 自習書のご紹介
第44回:「SQL Server 2014 への移行とアップグレードの実践」ドキュメントを作成しました
第43回:SQL Server 2014 インメモリ OLTP 機能の上級者向けドキュメントを作成しました
第42回:Power Query プレビュー版 と Power BI for Office 365 へのクエリ保存(共有クエリ)
第41回:「SQL Server 2014 CTP2 インメモリ OLTP 機能の概要」自習書のお知らせです
第40回: SQL Server 2012 自習書(HTML版)を掲載しました
第39回: Power BI for Office 365 プレビュー版は試されましたか?
第38回: SQL Server 2014 CTP2 の公開
第37回: SQL Server 2014 CTP1 の自習書をご覧ください
第36回: SQL Server 2014 CTP1 のクラスター化列ストア インデックスを試す
第35回: SQL Server 2014 CTP1 のインメモリ OLTP の基本操作を試す
第34回: GeoFlow for Excel 2013 のプレビュー版を試す
第33回: iPad と iPhone からの SQL Server 2012 Reporting Servicesのレポート閲覧
第32回: PASS Summit 2012 参加レポート
第31回: SQL Server 2012 Reporting Services 自習書のお知らせ
第30回: SQL Server 2012(RTM 版)の新機能 自習書をご覧ください
第29回: 書籍「SQL Server 2012の教科書 開発編」のお知らせ
第26回: SQL Server 2012 の Power View 機能のご紹介
第25回: SQL Server 2012 の Data Quality Services
第24回: SQL Server 2012 自習書のご案内と初セミナー報告
第23回: Denali CTP1 が公開されました
第22回 チューニングに王道あらず
第21回 Microsoft TechEd 2010 終了しました
第20回 Microsoft TechEd Japan 2010 今年も登壇します
第19回 SQL Server 2008 R2 RTM の 日本語版が公開されました
第18回 「SQL Azure 入門」自習書のご案内
第17回 SQL Server 2008 自習書の追加ドキュメントのお知らせ
第16回 SQL Server 2008 R2 自習書とプレビュー セミナーのお知らせ
第15回 SQL Server 2008 R2 Reporting Services と新刊のお知らせ
第14回 TechEd 2009 のご報告と SQL Server 2008 R2 について
第13回 SQL Server 2008 R2 の CTP 版が公開されました
第12回 MVP Summit 2009 in Seattle へ参加