sp_addlogin (Transact-SQL)
適用対象:SQL Server
ユーザーが SQL Server 認証を使用して SQL Server のインスタンスに接続できるようにする新しい SQL Server ログインを作成します。
重要
この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 代わりに CREATE LOGIN を使用してください。
重要
可能な場合は、Windows 認証を使用します。
構文
sp_addlogin
[ @loginame = ] N'loginame'
[ , [ @passwd = ] N'passwd' ]
[ , [ @defdb = ] N'defdb' ]
[ , [ @deflanguage = ] N'deflanguage' ]
[ , [ @sid = ] sid ]
[ , [ @encryptopt = ] 'encryptopt' ]
[ ; ]
引数
[ @loginame = ] N'loginame'
ログインの名前。 @loginameは sysname で、既定値はありません。
[ @passwd = ] N'passwd'
ログイン パスワード。 @passwdは sysname で、既定値は NULL
.
重要
空白のパスワードは使用しないでください。 強力なパスワードを使用してください。
[ @defdb = ] N'defdb'
ログインの既定のデータベース (ログイン後にログインが最初に接続されるデータベース)。 @defdbは sysname で、既定値は master
.
[ @deflanguage = ] N'deflanguage'
ログインの既定の言語。 @deflanguageは sysname で、既定値は NULL
. @deflanguageが指定されていない場合、新しいログインの既定の@deflanguageは、サーバーの現在の既定の言語に設定されます。
[ @sid = ] sid
セキュリティ ID 番号 (SID)。 @sidは varbinary(16) で、既定値は NULL
. @sidの場合、システムはNULL
新しいログインの SID を生成します。 varbinary データ型を使用しているにもかかわらず、それ以外NULL
の値は正確に 16 バイトの長さにする必要があり、まだ存在することはできません。 @sidを指定すると便利です。たとえば、SQL Server ログインをスクリプト化したり、あるサーバーから別のサーバーに移動したりして、ログインが異なるサーバー上で同じ SID を持つ必要がある場合などです。
[ @encryptopt = ] 'encryptopt'
パスワードを、クリア テキストとして渡すか、またはクリア テキスト パスワードのハッシュとして渡すかを指定します。 暗号化は行われません。 ここでは、"暗号化" という用語を旧バージョンとの互換性のために使用しています。 クリア テキスト パスワードが渡された場合は、ハッシュされます。 ハッシュは保存されます。 @encryptoptは varchar(20) で、次のいずれかの値を指定できます。
Value | 説明 |
---|---|
NULL (既定値) |
パスワードがクリア テキストで渡されます。 |
skip_encryption |
パスワードは既にハッシュされています。 データベース エンジンは、値を再ハッシュせずに格納する必要があります。 |
skip_encryption_old |
指定されたパスワードは、以前のバージョンの SQL Server によってハッシュされました。 データベース エンジンは、値を再ハッシュせずに格納する必要があります。 このオプションは、アップグレード目的でのみ提供されます。 |
リターン コードの値
0
(成功) または 1
(失敗)。
解説
SQL Server ログインには、文字、記号、数字を含む 1 ~ 128 文字を含めることができます。 ログインにはバックスラッシュ ()、予約済みログイン名 (\
sa や public など) を含めることはできません。または、既に存在NULL
するか、空の文字列を指定してください。
既定のデータベースの名前が指定されている場合は、ステートメントを実行せずに、指定したデータベースに USE
接続できます。 ただし、データベース所有者 (sp_adduser、sp_addrolemember を使用) またはsp_addroleによって、そのデータベースへのアクセス権が付与されるまで、既定のデータベースを使用することはできません。
SID 番号は、サーバー内のログインを一意に識別する GUID です。
サーバーの既定の言語を変更しても、既存のログインの既定の言語は変更されません。 サーバーの既定の言語を変更するには、sp_configureを使用します。
パスワード ハッシュを抑制するために使用 skip_encryption
すると、ログインが SQL Server に追加されるときにパスワードが既にハッシュされている場合に便利です。 パスワードが以前のバージョンの SQL Server によってハッシュされた場合は、次を使用 skip_encryption_old
します。
sp_addlogin
は、ユーザー定義トランザクション内では実行できません。
次の表に、一緒 sp_addlogin
に使用されるストアド プロシージャをいくつか示します。
ストアド プロシージャ | 説明 |
---|---|
sp_grantlogin | Windows のユーザーまたはグループを追加します。 |
sp_password | ユーザーのパスワードを変更します。 |
sp_defaultdb | ユーザーの既定のデータベースを変更します。 |
sp_defaultlanguage | ユーザーの既定の言語を変更します。 |
アクセス許可
ALTER ANY LOGIN 権限が必要です。
例
A. SQL Server ログインを作成する
次の例では、既定のデータベースを指定せずに、パスワードを使用して、ユーザー Victoria
の B1r12-36
SQL Server ログインを作成します。
EXEC sp_addlogin 'Victoria', 'B1r12-36';
GO
B. 既定のデータベースを含む SQL Server ログインを作成する
次の例では、ユーザーAlbert
の SQL Server ログインを作成し、パスワードを指定し、既定のcorporate
B5432-3M6
データベースを作成します。
EXEC sp_addlogin 'Albert', 'B5432-3M6', 'corporate';
GO
C: 別の既定の言語を持つ SQL Server ログインを作成する
次の例では、ユーザーTzTodorov
の SQL Server ログインを、パスワード、既定の709hLKH7chjfwv
データベース、および既定のAdventureWorks2022
Bulgarian
言語を使用して作成します。
EXEC sp_addlogin 'TzTodorov', '709hLKH7chjfwv', 'AdventureWorks2022', N'български'
D. 特定の SID を持つ SQL Server ログインを作成する
次の例では、ユーザー Michael
の SQL Server ログインを、パスワード、既定の B548bmM%f6
データベース、既定の AdventureWorks2022
言語、 us_english
SID 0x0123456789ABCDEF0123456789ABCDEF
を使用して作成します。
EXEC sp_addlogin 'Michael', 'B548bmM%f6', 'AdventureWorks2022', 'us_english', 0x0123456789ABCDEF0123456789ABCDEF
関連するコンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示