ログインの作成
適用対象: SQL Server
Azure SQL データベース
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
この記事では、SQL Server Management Studio (SSMS) または Transact-SQL を使用して SQL Server または Azure SQL Database にログインを作成する方法について説明します。 ログインとは、SQL Server のインスタンスに接続しようとしている人またはプロセスの ID を指します。
Note
Microsoft Entra ID は以前に Azure Active Directory(Azure AD)として知られていました。
背景
ログインは、セキュリティ プリンシパル、またはセキュリティで保護されたシステムで認証できるエンティティです。 SQL Server に接続するためには、ユーザーにログインが必要です。 Windows プリンシパル (ドメイン ユーザーや Windows ドメイン グループなど) に基づいてログインを作成することも、Windows プリンシパルに基づかないログイン (SQL Server ログインなど) を作成することもできます。
Note
SQL Server 認証を使用するためには、データベース エンジンに混合モード認証が使用されている必要があります。 詳細については、「 認証モードの選択」を参照してください。
Azure SQL では、Azure SQL Database、Azure SQL Managed Instance、Azure Synapse Analytics (専用の SQL プールのみ) に対する認証に使用する Microsoft Entra サーバー プリンシパル (ログイン) が導入されました。
SQL Server 2022 では、SQL Server 用の Microsoft Entra 認証が導入されています。
セキュリティ プリンシパルとして、ログインには権限を許可することができます。 ログインのスコープは、データベース エンジン全体です。 SQL Server のインスタンス上の特定のデータベースに接続するには、データベース ユーザーにログインをマップする必要があります。 データベース内の権限を許可したり拒否したりする際に、その対象となるのは、ログインではなく、データベース ユーザーです。 ログインには、SQL Server のインスタンス全体をスコープとして持つ権限 (CREATE ENDPOINT 権限など) を許可することができます。
Note
ログインが SQL Server に接続するとき、その ID が master
データベースで検証されます。 包含データベース ユーザーを使用して SQL Server と SQL Server のデータベース レベルでの接続が認証されます。 包含データベース ユーザーを使用する場合、ログインは必要ありません。 包含データベースは、他のデータベース、およびデータベースをホストする SQL Server または SQL Database (および master
データベース) のインスタンスから分離されたデータベースです。 SQL Server では、Windows 認証と SQL Server 認証の両方で包含データベース ユーザーがサポートされます。 SQL Database を使用して、包含データベース ユーザーとデータベース レベルのファイアウォール規則を結合します。 詳細については、「包含データベース ユーザー - データベースの可搬性を確保する」を参照してください。
アクセス許可
SQL Server には、サーバーに対する ALTER ANY LOGIN または ALTER LOGIN アクセス許可、または ##MS_LoginManager## 固定サーバー ロール (SQL Server 2022 以降) が必要です。
SQL Database には、loginmanager ロールまたは固定サーバー ロール ##MS_LoginManager## のメンバーシップが必要です。
SQL Server 用 SSMS を使用してログインを作成する
オブジェクト エクスプローラーで、新しいログインを作成するサーバー インスタンスのフォルダーを展開します。
[セキュリティ] フォルダーを右クリックし、[新規作成] をポイントして、[ログイン] をクリックします。
[ログイン - 新規作成] ダイアログ ボックスの [全般] ページで、[ログイン名] ボックスにユーザーの名前を入力します。 または、[検索] を選択して [ユーザーまたはグループの選択] ダイアログ ボックスを開きます。
Note
Windows プリンシパルを検索する場合は、特定のポートがドメイン コントローラーと通信できるようにする必要があります。 検索結果を取得できない場合は、「Windows の サービスの概要とネットワーク ポート要件」を参照してください。
[検索...] を選択した場合:
[このオブジェクトの種類を選択してください] で、[オブジェクトの種類] を選択して [オブジェクトの種類] ダイアログ ボックスを開き、[ビルトイン セキュリティ プリンシパル]、[グループ]、[ユーザー] のいずれかまたはすべてを選択します。 [ビルトイン セキュリティ プリンシパル] と [ユーザー] が既定で選択されます。 終わったら、 [OK] を選択します。
[場所を指定してください] で、[場所] を選択して [場所] ダイアログ ボックスを開き、使用可能なサーバー場所の 1 つを選択します。 終わったら、 [OK] を選択します。
[選択するオブジェクト名を入力してください (例)]で、検索するユーザー名またはグループ名を入力します。 詳細については、「 [ユーザー、コンピューターまたはグループの選択] ダイアログ ボックス」を参照してください。
詳細検索オプションを表示するには [詳細] を選択します。 詳細については、「 [ユーザー、コンピューターまたはグループの選択] ダイアログ ボックス - [詳細設定] ページ」を参照してください。
[OK] を選択します。
Windows プリンシパル上に基づいてログインを作成するには、 [Windows 認証]を選択します。 これは既定値です。
SQL Server データベースに保存されるログインを作成するには、[SQL Server 認証] を選択します。
[パスワード] ボックスに、新しいユーザーのパスワードを入力します。 [パスワードの確認] ボックスに、パスワードを再度入力します。
既存のパスワードを変更する場合は、 [古いパスワードを指定する]を選択し、古いパスワードを [古いパスワード] ボックスに入力します。
複雑さと施行のパスワード ポリシー オプションを適用するには、 [パスワード ポリシーを適用する]を選択します。 詳細については、「 Password Policy」をご参照ください。 [SQL Server 認証] が選択されている場合、これは既定のオプションです。
失効に関するパスワード ポリシー オプションを適用するには、 [パスワードの期限を適用する]を選択します。 このチェック ボックスをオンにする場合は、[パスワード ポリシーを適用する] がオンになっている必要があります。 [SQL Server 認証] が選択されている場合、これは既定のオプションです。
ユーザーにログインの初回使用後に新しいパスワードの作成を強制するには、 [ユーザーは次回ログイン時にパスワードを変更する]を選択します。 このチェック ボックスをオンにする場合は、[パスワードの期限を適用する] がオンになっている必要があります。 [SQL Server 認証] が選択されている場合、これは既定のオプションです。
ログインをスタンドアロン セキュリティ証明書に関連付けるには、 [証明書にマップ済み] を選択し、一覧から既存の証明書の名前を選択します。
ログインをスタンドアロン非対称キーに関連付けるには、 [非対称キーにマップ済み] を選択し、一覧から既存のキーの名前を選択します。
ログインをセキュリティ資格情報に関連付けるには、 [資格情報にマップ済み] チェック ボックスをオンにし、一覧から既存の資格情報を選択するか、 [追加] を選択して新しい資格情報を作成します。 ログインからセキュリティ資格情報へのマッピングを削除するには、[マップされた資格情報] から資格情報を選択し、[削除] を選択します。 全般的な資格情報の詳細については、「資格情報データベース エンジン」を参照してください。
[既定のデータベース] の一覧から、ログインの既定のデータベースを選択します。
master
はこのオプションのデフォルトです。[既定の言語] の一覧から、ログインの既定の言語を選択します。
[OK] を選択します。
追加のオプション
[ログイン - 新規作成] ダイアログ ボックスでは、[サーバー ロール]、[ユーザー マッピング]、[セキュリティ保護可能なリソース]、[状態] の 4 つの他のページにもオプションがあります。
サーバーの役割
Note
これらのサーバー ロールは、SQL Database では使用できません。 SQL Database では、固定サーバー レベルのロールを使用できます。 詳細については、「アクセス許可管理の Azure SQL Database サーバー ロール」を参照してください。
[サーバー ロール] ページには、新しいログインに割り当てることができるすべての可能なロールが一覧表示されます。 次のオプションを使用できます。
[bulkadmin] チェック ボックス
bulkadmin 固定サーバー ロールのメンバーは、BULK INSERT ステートメントを実行できます。
[dbcreator] チェック ボックス
dbcreator 固定サーバー ロールのメンバーは、任意のデータベースを作成、変更、削除、および復元できます。
[diskadmin] チェック ボックス
diskadmin 固定サーバー ロールのメンバーは、ディスク ファイルを管理できます。
[processadmin] チェック ボックス
processadmin 固定サーバー ロールのメンバーは、データベース エンジン のインスタンスを実行しているプロセスを終了できます。
[public] チェック ボックス
すべて SQL Server ユーザー、グループ、およびロールは、既定で public 固定サーバー ロールに属します。
[securityadmin] チェック ボックス
securityadmin 固定サーバー ロールのメンバーは、ログインとログインのプロパティを管理します。 このメンバーは、サーバー レベルの権限を許可、拒否、および禁止できます。 また、データベース レベルの権限も許可、拒否、および禁止できます。 また、SQL Server ログインのパスワードをリセットできます。
[serveradmin] チェック ボックス
serveradmin 固定サーバー ロールのメンバーは、サーバー全体の構成オプションを変更したり、サーバーをシャットダウンしたりできます。
[setupadmin] チェック ボックス
setupadmin 固定サーバー ロールのメンバーは、リンク サーバーを追加および削除でき、一部のシステム ストアド プロシージャを実行することもできます。
[sysadmin] チェック ボックス
sysadmin 固定サーバー ロールのメンバーは、データベース エンジンに対するすべての操作を実行できます。
ユーザー マッピング
[ユーザー マッピング] ページには、すべての可能なデータベースと、ログインに適用できるデータベースに対するデータベース ロール メンバーシップが一覧表示されます。 選択したデータベースによって、ログインに使用できるロールのメンバーシップが決まります。 このページで使用できるオプションを次に示します。
[このログインにマップされたユーザー]
このログインでアクセスできるデータベースを選択します。 データベースを選択すると、[database_name のデータベース ロール メンバーシップ] ペインに有効なデータベース ロールが表示されます。
Map
下の一覧にあるデータベースへのアクセスを、ログインに許可します。
データベース
サーバーで利用できるデータベースを一覧表示します。
User
ログインにマップするデータベース ユーザーを指定します。 既定では、データベース ユーザーの名前はログインと同じになります。
[既定のスキーマ]
ユーザーの既定のスキーマを指定します。 ユーザーが最初に作成されるときの既定のスキーマは、 dboです。 存在しない既定のスキーマを指定することもできます。 Windows グループ、証明書、非対称キーにマップされるユーザーに対して既定のスキーマを指定することはできません。
[database_name では guest アカウントが有効]
選択したデータベースで guest アカウントが有効かどうかを示す読み取り専用属性です。 guest アカウントを有効または無効にするには、guest アカウントの [ログインのプロパティ] ダイアログ ボックスの [状態] ページを使用します。
[database_name のデータベース ロール メンバーシップ]
指定されたデータベースにおけるユーザーのロールを選択します。 どのデータベースでも、ユーザーはすべて public ロールのメンバーになり、削除できません。 データベース ロールの詳細については、「 データベース レベルのロール」を参照してください。
セキュリティ保護可能
[セキュリティ保護可能なリソース] ページには、すべてのセキュリティ保護可能なリソースと、ログインに付与できる、セキュリティ保護可能なリソースに対する権限が一覧表示されます。 このページで使用できるオプションを次に示します。
上のグリッド
権限を設定できるアイテムが 1 つ以上表示されます。 上のグリッドに表示される列は、プリンシパルまたはセキュリティ保護可能なリソースによって異なります。
アイテムを上のグリッドに追加するには:
[Search] を選択します。
[オブジェクトの追加] ダイアログ ボックスで、[特定のオブジェクト]、[この種類のすべてのオブジェクト…]、[サーバーserver_name] のいずれかのオプションを選択します。 [OK] を選択します。
Note
[サーバー server_name] を選択すると、そのサーバーのセキュリティ保護可能なすべてのオブジェクトが上のグリッドに自動的に入力されます。
[特定のオブジェクト]を選択した場合:
[オブジェクトの選択] ダイアログ ボックスの [以下のオブジェクトの種類を選択] で、[オブジェクトの種類] を選択します。
[オブジェクトの種類を選択] ダイアログ ボックスで、 [エンドポイント]、 [ログイン]、 [サーバー]、 [可用性グループ]、 [サーバー ロール]のオブジェクトの種類のいずれかまたはすべてを選択します。 [OK] を選択します。
[選択するオブジェクト名を入力してください (例)]で、[参照] を選択します。
[オブジェクトの参照] ダイアログ ボックスで、 [オブジェクトの種類を選択] ダイアログ ボックスで選択した種類の使用可能なオブジェクトを選択し、 [OK]を選択します。
[オブジェクトの選択] ダイアログ ボックスで [OK]を選択します。
[オブジェクトの種類を選択]ダイアログ ボックスで [この種類のすべてのオブジェクト] を選択した場合は、[エンドポイント]、[ログイン]、[サーバー]、[可用性グループ]、[サーバー ロール] のオブジェクトの種類のいずれかまたはすべてを選択します。 [OK] を選択します。
名前
グリッドに追加される各プリンシパルまたはセキュリティ保護可能なリソースの名前です。
Type
各アイテムの種類について説明します。
[明示的] タブ
上のグリッドで選択されているセキュリティ保護可能なリソースに適用できる権限が表示されます。 すべての明示的な権限に対してすべてのオプションを使用できるわけではありません。
アクセス許可
権限の名前です。
Grantor
権限を許可したプリンシパルです。
Grant
この権限をログインに対して許可する場合はオンにします。 この権限を取り消す場合はオフにします。
[許可の有無]
一覧表示された権限に対する WITH GRANT オプションの状態を反映します。 このボックスは読み取り専用です。 この権限を適用するには、 GRANT ステートメントを使用します。
Deny
この権限をログインに対して拒否する場合はオンにします。 この権限を取り消す場合はオフにします。
状態
[状態] ページには、選択した SQL Server ログインに対して構成できる認証オプションと承認オプションの一部が表示されます。
このページで使用できるオプションを次に示します。
[データベース エンジンに接続する権限]
この設定を操作するときは、選択したログインを、セキュリティ保護可能なリソースに対する権限を許可または拒否できるプリンシパルと考えます。
ログインに CONNECT SQL 権限を付与する場合は、 [許可] を選択します。 ログインに CONNECT SQL 権限を与えない場合は、 [拒否] を選択します。
Login
この設定を操作するときは、選択したログインを、テーブル内のレコードと考えます。 ここに一覧表示される値を変更すると、それらの変更がレコードに適用されます。
無効になっているログインも、レコードとして存在し続けます。 ただし、無効になっているログインから SQL Server に接続を試みても、そのログインは認証されません。
このオプションを選択して、このログインを有効または無効にします。 このオプションは、ENABLE オプションまたは DISABLE オプションを指定した ALTER LOGIN ステートメントを実行します。
SQL Server 認証
[ログインはロックアウトされています] チェック ボックスは、選択したログインが SQL Server 認証を使用して接続し、ログインがロックアウトされている場合にのみ使用できます。 この設定は読み取り専用です。 ロックアウトされたログインのロックを解除するには、UNLOCK オプションを指定して ALTER LOGIN を実行します。
Windows 認証と T-SQL を使用してログインを作成する
オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
標準バーで、 [新しいクエリ] を選択します。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。
-- Create a login for SQL Server by specifying a server name and a Windows domain account name. CREATE LOGIN [<domainName>\<loginName>] FROM WINDOWS; GO
SQL Server 認証と T-SQL を使用してログインを作成する
オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
標準バーで、 [新しいクエリ] を選択します。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。
-- Creates the user "shcooper" for SQL Server using the security credential "RestrictedFaculty" -- The user login starts with the password "Baz1nga," but that password must be changed after the first login. CREATE LOGIN shcooper WITH PASSWORD = 'Baz1nga' MUST_CHANGE, CREDENTIAL = RestrictedFaculty; GO
詳細については、「CREATE LOGIN (Transact-SQL)」を参照してください。
フォローアップ: ログインの作成後に実行する手順
ログインの作成が済むと、そのログインで SQL Server に接続できるようになりますが、実際の作業を行うための十分な権限があるとは限りません。 ログインに関して一般的に行われる操作について説明するトピックへのリンクを次に示します。
ログインをロールに参加させるには、「 ロールの追加」を参照してください。
データベースの使用をログインに承認するには、「 データベース ユーザーの作成」を参照してください。
ログインに権限を付与するには、「 プリンシパルに対する権限の許可」を参照してください。