セキュリティの機能強化 (データベース エンジン)
SQL Server データベース エンジンには、セキュリティの強化として、セットアップ中のプロビジョニング、新しい SEARCH PROPERTY LIST 権限、および新しいユーザー定義のサーバー ロールに加え、サーバー ロールとデータベース ロールを管理する新しい方法が含まれています。
セットアップ中のプロビジョニング
ロールの分離を強化するため、sysadmin 固定サーバー ロールでは、BUILTIN\administrators および Local System (NT AUTHORITY\SYSTEM) は自動的にプロビジョニングされません。 シングル ユーザー モードの場合、ローカル管理者は引き続き データベース エンジンにアクセスできます。
SQL Server では、Windows 7 または Windows Server 2008 R2 にインストールする場合、管理されたサービス アカウントおよび仮想アカウントがサポートされます。 詳細については、「Windows サービス アカウントと権限の構成」を参照してください。
サービスごとの SID によるオペレーティング システムの保護は、すべてのオペレーティング システムで使用されるようになりました。 詳細については、「Windows サービス アカウントと権限の構成」を参照してください。
新しい権限
データベース エンジンで、新たに 19 の権限が利用できるようになりました。 すべての権限を表示するには、次のステートメントを実行してください。
SELECT * FROM sys.fn_builtin_permissions('');
新しい権限は次のとおりです。
検索プロパティ リストの CONTROL/VIEW DEFINTION/TAKE OWNERSHIP/REFERENCES/ALTER に対し、新たに GRANT、DENY、および REVOKE の各権限を使用できます。
サーバー ロールの ALTER ANY SERVER ROLE、CREATE SERVER ROLE、および CONTROL/VIEW DEFINTION/TAKE OWNERSHIP/ALTER に対し、新たに GRANT、DENY、および REVOKE の各権限を使用できます。
可用性グループの ALTER ANY AVAILABILITY GROUP、CREATE AVAILABILITY GROUP、および CONTROL/VIEW DEFINTION/TAKE OWNERSHIP/ALTER に対し、新たに GRANT、DENY、および REVOKE の各権限を使用できます。
CREATE SEQUENCE 権限に対し、新たに GRANT、DENY、および REVOKE の各権限を使用できます。
ALTER ANY EVENT SESSION 権限に対し、新たに GRANT、DENY、および REVOKE の各権限を使用できます。
新しいロールの管理
ユーザー定義のサーバー ロールを使用できるようになりました。 ユーザー定義のサーバー ロールを管理するには、CREATE SERVER ROLE、ALTER SERVER ROLE、および DROP SERVER ROLE を使用します。 すべてのサーバー ロールのメンバーを追加または削除するには、ALTER SERVER ROLE … WITH ADD MEMBER を使用します。 sp_addsrvrolemember および sp_dropsrvrolemember は使用されなくなりました。
ALTER ROLE は、ADD MEMBER 構文を使用して、ロールのメンバーを追加または削除するために変更されています。 sp_addrolemember および sp_droprolemember は使用されなくなりました。
IS_ROLEMEMBER は、データベース ロールのメンバーシップを確認するために追加されています。
グループの既定のスキーマ
Windows グループの既定のスキーマを定義できるようになりました。 オブジェクトが Windows ユーザーによって作成される場合、および既定のスキーマが指定されていない場合、SQL Server はスキーマを自動的に作成しません。 既定のスキーマの詳細については、「CREATE USER」を参照してください。
SQL Server Audit の機能強化
サーバー レベルの監査のサポートが拡張され、SQL Server のすべてのエディションが対象となりました。 データベース レベルの監査は、Enterprise、Developer、および Evaluation Edition に限定されています。
SQL Server Audit は、監査ログへの書き込みエラーに対する回復力が強化されました。 たとえば、ターゲット ディレクトリがリモート共有にあるときにネットワークがダウンした場合、ネットワーク接続が再確立された時点で SQL Server Audit を復旧できるようになりました。 また、新しいオプションが導入されています。これは、エラーが生じた監査ターゲットに書き込まれる監査イベントを生成するような動作を失敗させるオプションです。 詳細については、CREATE SERVER AUDIT の ON_FAILURE イベントの FAIL_OPERATION オプションのトピックを参照してください。
従来の Audit ログでは、不確定な数のログ ファイルが使用されるか、ログの数が一定の数に達した後にロールオーバーされていました。 ロールオーバーすることなく監査ファイルの数を制限するための新しいオプションが導入され、ユーザーが監査レコードを失うことなく監査情報を制御できるようになりました。 詳細については、CREATE SERVER AUDIT の MAX_FILES オプションのトピックを参照してください。
可能な場合、監査ログでは追加の Transact-SQL スタック フレーム情報が提供されます。 これによって多くの場合、監査担当者は、クエリがストアド プロシージャを介して発行されたのかアプリケーションによって直接発行されたのかどうかを確認できます。
SQL Server 監査仕様でユーザー定義の監査グループがサポートされるようになりました。 新しい sp_audit_write (Transact-SQL) プロシージャを使用して、監査イベントを監査ログに書き込むことができます。 ユーザー定義の監査イベントにより、アプリケーションは、監査ログにカスタム情報 (たとえば、SQL Server への共通のログインが使用されている場合に接続を行ったアプリケーション ユーザーの名前) を記述できます。
ユーザー定義の監査イベントを追跡するための新しい列が、sys.server_file_audits、sys.server_audits、および sys.fn_get_audit_file に追加されました。
SQL Server Audit で、監査ログへの書き込みの前に監査イベントにフィルターを適用する機能がサポートされるようになりました。 詳細については、CREATE SERVER AUDIT および ALTER SERVER AUDIT の WHERE 句のトピックを参照してください。
新しい監査グループは、包含データベース ユーザーの監視をサポートします。
Management Studio の監査に関するダイアログ ボックスに新しい監査オプションが追加されました。
包含データベースを経由したデータベース エンジン アクセス
包含データベースへのアクセスは、ログインを必要としない包含データベース ユーザーを通して許可されます。 SQL Server のシステム管理者は、包含データベースによって SQL Server セキュリティ モデルを変更する方法を理解する必要があります。 詳細については、「包含データベースでのセキュリティのベスト プラクティス」を参照してください。
ハッシュ アルゴリズム
HASHBYTES 関数は、SHA2_256 および SHA2_512 アルゴリズムをサポートするようになりました。
さらに非推奨の RC4
RC4 アルゴリズムは、旧バージョンとの互換性のためにのみサポートされています。 データベース互換性レベルが 90 または 100 の場合、新しい素材は RC4 または RC4_128 を使用してのみ暗号化できます (推奨されません)。AES アルゴリズムのいずれかなど、新しいアルゴリズムを使用してください。 SQL Server 2012 では、どの互換性レベルでも、RC4 または RC4_128 を使用して暗号化された素材を暗号化解除できます。
証明書キーの長さ
証明書の作成時に、外部ソースからインポートされる秘密キーの最大の長さは 3,456 から 4,096 ビットに拡張されます。
サービス マスター キーおよびデータベース マスター キーの暗号化を 3DES から AES に変更
SQL Server 2012 は、AES 暗号化アルゴリズムを使用してサービス マスター キー (SMK) とデータベース マスター キー (DMK) を保護します。 AES は、以前のバージョンで使用されていた 3DES よりも新しい暗号化アルゴリズムです。 データベース エンジンのインスタンスを SQL Server 2012 にアップグレードした後で、マスター キーを AES にアップグレードするために SMK と DMK を再度生成する必要があります。 SMK の再生成方法の詳細については、「ALTER SERVICE MASTER KEY (Transact-SQL)」および「ALTER MASTER KEY (Transact-SQL)」を参照してください。
証明書をバイナリから作成可能
CREATE CERTIFICATE (Transact-SQL) には FROM BINARY オプションがあり、ASN でエンコードされた証明書のバイナリ記述を指定できます。 新しい関数である CERTENCODED (Transact-SQL) と CERTPRIVATEKEY (Transact-SQL) は、既存の証明書のバイナリ記述を抽出するために使用できます。