このトピックはまだ評価されていません - このトピックを評価する

Windows Azure SQL データベースにおけるデータベースとログインの管理

Microsoft Windows Azure SQL データベースでは、サービスをサインアップすると、プロビジョニング処理が実行され、SQL データベース サーバー、master という名前のデータベース、およびログインが作成されます。このログインは SQL データベース サーバーのサーバーレベル プリンシパルとなります。このログインは、内部設置型 SQL Server インスタンスにおけるサーバーレベル プリンシパルである sa と似ています。 

SQL データベース サーバーレベル プリンシパル アカウントは、サーバーレベルおよびデータベースレベルのセキュリティをすべて管理する権限を常に有しています。このトピックでは、Windows Azure SQL データベースでサーバーレベル プリンシパルなどのアカウントを使用してログインおよびデータベースを管理する方法について説明します。 

SQL データベースのセキュリティ管理の概要

Windows Azure SQL データベースにおけるセキュリティ管理は、内部設置型の SQL Server インスタンスにおけるセキュリティ管理と似ています。データベースレベルでのセキュリティ管理はほぼ同じで、使用できるパラメーターのみが異なります。SQL データベース は 1 つ以上の物理コンピューターに拡張できるため、Windows Azure SQL データベースのサーバーレベル管理については別の方法が使用されます。次の表に、内部設置型の SQL Server と Windows Azure SQL データベースのセキュリティ管理の相違点についてまとめています。

 

相違点 内部設置型 SQL Server Windows Azure SQL データベース

サーバーレベル セキュリティを管理する場所

SQL Server Management Studio のオブジェクト エクスプローラー[セキュリティ] フォルダー

master データベース

ログインの作成に使用するサーバーレベル セキュリティ ロール

securityadmin 固定サーバー ロール

詳細については、「サーバーレベルのロール」を参照してください。

master データベースの loginmanager データベース ロール

ログインを管理するためのコマンド

CREATE LOGIN

ALTER LOGIN

DROP LOGIN

CREATE LOGIN

ALTER LOGIN

DROP LOGIN

(一部のパラメーターが制限されます。また、master データベースに接続する必要があります。)

すべてのログインの表示

sys.syslogins (SQL Server 認証ログインの sys.sql_logins)

sys.sql_logins

(master データベースに接続する必要があります。)

データベースの作成に使用するサーバー レベル ロール

dbcreator 固定データベース ロール

詳細については、「サーバーレベルのロール」を参照してください。

master データベースの dbmanager データベース ロール

データベースの作成に使用するコマンド

CREATE DATABASE

CREATE DATABASE

(一部のパラメーターが制限されます。また、master データベースに接続する必要があります。)

データベースの削除

DROP DATABASE

DROP DATABASE

ユーザーが dbmanager ロールの場合、ユーザーがそのデータベースを作成したかどうかに関係なく、任意のデータベースを削除 (DROP) できます。

すべてのデータベースの一覧表示

sys.databases

(ビュー)

sys.databases

(master データベースに接続する必要があります。)

サーバーレベル管理と master データベース

SQL データベース サーバーは、データベースのグループを定義する抽象的なものです。SQL データベース サーバーに関連付けられているデータベースは、マイクロソフトのデータ センターに置かれた別々の物理コンピューターの中に存在している可能性があります。そのすべてに対してサーバーレベル管理を実行するには、master という名前の 1 つのデータベースを使用します。

master データベースによってログインが追跡され、どのログインにデータベースや他のログインを作成する権限があるかが追跡されます。ログインまたはデータベースの作成 (CREATE)、変更 (ALTER)、または削除 (DROP) を実行する際には常に、master データベースに接続する必要があります。master データベースには、ログインの表示に使用できる sys.sql_logins ビューと、データベースの表示に使用できる sys.databases ビューも用意されています。

note
USE コマンドによるデータベースの切り替えはサポートされていません。対象データベースに対して直接接続を確立します。

Windows Azure SQL データベースでは、内部設置型の SQL Server インスタンスと同じ方法で、ユーザーおよびオブジェクトのデータベースレベル セキュリティを管理できます。それぞれのコマンドで使用できるパラメーターのみが異なります。詳細については、「Transact-SQL リファレンス (Windows Azure SQL データベース)」を参照してください。

ログインの管理

ログインを管理するには、master データベースに接続して、サーバーレベル プリンシパル ログインを使用します。CREATE LOGINALTER LOGIN、および DROP LOGIN の各ステートメントを使用できます。次の例では、login1 というログインを作成します。

-- first, connect to the master database
CREATE LOGIN login1 WITH password='<ProvidePassword>';
note
ログインを作成する際には、強力なパスワードを使用する必要があります。詳細については、「強力なパスワード」を参照してください。

新しいログインの使用

作成したログインを使用して Windows Azure SQL データベースに接続するには、まず CREATE USER コマンドを使用して、各ログインにデータベースレベルの権限を付与する必要があります。詳細については、「ログインのデータベース アクセスの許可」を参照してください。

一部のツールでは表形式データ ストリーム (TDS) の実装方法が異なるため、接続文字列でログインに SQL データベース サーバー名を付加する必要があります。その際には、<login>@<server> という表記を使用します。この場合は、@ 記号を使用してログインと SQL データベース サーバー名を区分します。たとえば、ログイン名が login1 であり、SQL データベース サーバーの完全修飾名が servername.database.windows.net である場合、接続文字列の username パラメーターは login1@servername のようにする必要があります。この制限により、ログイン名として選択できるテキストが限定されます。詳細については、「CREATE LOGIN (Windows Azure SQL データベース)」を参照してください。

ログインに対するサーバーレベル権限の付与

サーバーレベル プリンシパル以外のログインでサーバーレベル セキュリティを管理できるように、Windows Azure SQL データベースには 2 つのセキュリティ ロールが用意されています。ログインの作成に使用される loginmanager と、データベースの作成に使用される dbmanager です。master データベースのユーザーのみ、これらのデータベース ロールに追加することができます。

note
ログインまたはデータベースを作成するには、(master の論理表現である) master データベースに接続する必要があります。

loginmanager ロール

内部設置型 SQL Server インスタンスの securityadmin 固定サーバー ロールと同様に、Windows Azure SQL データベースの loginmanager データベース ロールにはログインを作成する権限があります。新しいログインを作成できるのは、サーバーレベル プリンシパル ログイン (プロビジョニング処理で作成されたもの) または loginmanager データベース ロールのメンバーのみです。

dbmanager ロール

Windows Azure SQL データベース dbmanager データベース ロールは、内部設置型 SQL Server インスタンスの dbcreator 固定サーバー ロールと似ています。データベースを作成できるのは、サーバーレベル プリンシパル ログイン (プロビジョニング処理で作成されたもの) または dbmanager データベース ロールのメンバーのみです。dbmanager データベース ロールのメンバーになったユーザーは、SQL データベース CREATE DATABASE コマンドを使用してデータベースを作成できますが、このコマンドは master データベース内で実行する必要があります。詳細については、「CREATE DATABASE (Windows Azure SQL データベース)」を参照してください。

SQL データベースのサーバーレベル ロールを割り当てる方法

データベースや他のログインを作成できるログインや関連するユーザーを作成するには、次の手順に従います。

  1. サーバーレベル プリンシパル ログイン (プロビジョニング処理で作成されたもの) の資格情報、またはloginmanager データベース ロールの既存のメンバーの資格情報を使用して master データベースに接続します。

  2. CREATE LOGIN コマンドを使用して、ログインを作成します。詳細については、「CREATE LOGIN (Windows Azure SQL データベース)」を参照してください。

  3. CREATE USER コマンドを使用して、そのログインの新しいユーザーを master データベースに作成します。詳細については、「CREATE USER (Windows Azure SQL データベース)」を参照してください。

  4. sp_addrolememeber ストアド プロシージャを使用して、新しいユーザーを dbmanager データベース ロール、loginmanager データベース ロールのどちらか、またはその両方に追加します。

次のコード例は、ログイン (login1) および対応するデータベース ユーザー (login1User) を作成する方法を示しています。このユーザーは、master データベースへの接続中に、データベースまたは他のログインを作成することができます。

-- first, connect to the master database
CREATE LOGIN login1 WITH password='<ProvidePassword>';
CREATE USER login1User FROM LOGIN login1;
EXEC sp_addrolemember 'dbmanager', 'login1User';
EXEC sp_addrolemember 'loginmanager', 'login1User';
note
ログインを作成する際には、強力なパスワードを使用する必要があります。詳細については、「強力なパスワード」を参照してください。

ログインのデータベース アクセスの許可

すべてのログインは master データベースに作成する必要があります。ログインが作成された後で、別のデータベースにそのログインのユーザー アカウントを作成できます。Windows Azure SQL データベースでは、内部設置型の SQL Server インスタンスと同じ方法でデータベース ロールもサポートします。

別のデータベースにユーザー アカウントを作成するには (ログインまたはデータベースをまだ作成していないとします)、次の手順に従います。

  1. master データベースに接続します (loginmanager ロールと dbmanager ロールを持つログインを使用します)。

  2. CREATE LOGIN コマンドを使用して、新しいログインを作成します。詳細については、「CREATE LOGIN (Windows Azure SQL データベース)」を参照してください。Windows 認証はサポートされません。

  3. CREATE DATABASE コマンドを使用して、新しいデータベースを作成します。詳細については、「CREATE DATABASE (Windows Azure SQL データベース)」を参照してください。

  4. 新しいデータベースとの接続を確立します (データベースの作成に使用したログインを使用します)。

  5. CREATE USER コマンドを使用して、新しいデータベースに新しいユーザーを作成します。詳細については、「CREATE USER (Windows Azure SQL データベース)」を参照してください。

次のコード例では、login1 という名前のログインと、database1 という名前のデータベースの作成方法を示します。

-- first, connect to the master database
CREATE LOGIN login1 WITH password='<ProvidePassword>';
CREATE DATABASE database1;
note
ログインを作成する際には、強力なパスワードを使用する必要があります。詳細については、「強力なパスワード」を参照してください。

次の例では、database1 という名前のデータベースに、ログイン login1 に対応する login1User という名前のデータベース ユーザーを作成する方法を示します。

-- Establish a new connection to the database1 database
CREATE USER login1User FROM LOGIN login1;

Windows Azure SQL データベースにおけるこのようなデータベースレベルの権限モデルは、内部設置型の SQL Server インスタンスと同じです。詳細については、SQL Server オンライン ブックの次のトピックを参照してください。

ID およびアクセス制御 (データベース エンジン)

ログイン、ユーザー、およびスキーマの管理方法に関するトピック

レッスン 2: データベース オブジェクトに対する権限の構成

note
Windows Azure SQL データベースのセキュリティ関連の Transact-SQL ステートメントでは、使用できるパラメーターが多少異なる場合があります。詳細については、「Transact-SQL リファレンス (Windows Azure SQL データベース)」を参照してください。

ログインとデータベースの表示

SQL データベース サーバーのログインとデータベースを表示するには、master データベースの sys.sql_logins ビューと sys.databases ビューをそれぞれ使用します。次の例では、SQL データベース サーバーのすべてのログインおよびデータベースの一覧を表示する方法を示します。

-- first, connect to the master database
SELECT * FROM sys.sql_logins;
SELECT * FROM sys.databases; 

参照

この情報は役に立ちましたか。
(残り 1500 文字)

コミュニティの追加

追加
© 2013 Microsoft. All rights reserved.
facebook page visit twitter rss feed newsletter