エクスポート (0) 印刷
すべて展開

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

更新日: 2014年2月

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

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

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

 

相違点 内部設置型 SQL Server Microsoft 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 データベースに接続する必要があります。)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  3. CREATE USER コマンドを使用して、そのログインの新しいユーザーを master データベースに作成します。詳細については、「CREATE USER (Transact-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 データベースに作成する必要があります。ログインが作成された後で、別のデータベースにそのログインのユーザー アカウントを作成できます。Microsoft Azure SQL データベースでは、内部設置型の SQL Server インスタンスと同じ方法でデータベース ロールもサポートします。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

関連項目

表示:
© 2014 Microsoft