sp_adduser (Transact-SQL)

現在のデータベースに新しいユーザーを追加します。

重要な注意事項重要

この機能は、将来のバージョンの Microsoft SQL Server では削除される予定です。新しい開発作業では、この機能の使用を避け、現在この機能を使用しているアプリケーションは修正するようにしてください。代わりに CREATE USER を使用してください。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

sp_adduser [ @loginame = ] 'login' 
        [ , [ @name_in_db = ] 'user' ] 
        [ , [ @grpname = ] 'role' ] 

引数

  • [ @loginame = ] 'login'
    SQL Server ログインまたは Windows ログインの名前を指定します。login のデータ型は sysname で、既定値はありません。login は既存の SQL Server ログインまたは Windows ログインである必要があります。

  • [ @name_in_db = ] 'user'
    新しいデータベース ユーザーの名前を指定します。user のデータ型は sysname で、既定値は NULL です。user を指定しない場合、新しいデータベース ユーザー名は login の名前に設定されます。user を指定すると、データベース内の新しいユーザーには、サーバーレベルのログイン名と異なる名前が与えられます。

  • [ @grpname = ] 'role'
    新しいユーザーがメンバになるデータベース ロールを指定します。role のデータ型は sysname で、既定値は NULL です。role は現在のデータベースで有効なデータベース ロールである必要があります。

戻り値

0 (成功) または 1 (失敗)

説明

sp_adduser では、ユーザーの名前を持つスキーマも作成されます。

ユーザーを追加した後、GRANT、DENY、および REVOKE ステートメントを使用して、ユーザーが実行する操作を制御する権限を定義します。

有効なログイン名の一覧を表示するには sys.server_principals を使用します。

有効なロール名の一覧を表示するには、sp_helprole を使用します。ロールを指定すると、そのロールに対して定義されている権限が自動的にユーザーに与えられます。ロールを指定しない場合、既定のロール public に与えられている権限がユーザーに与えられます。ロールにユーザーを追加するには、user name の値が指定されている必要があります(username は login_id と同じにすることができます)。

ユーザー guest はすべてのデータベースに存在しています。ユーザー guest を追加すると、このユーザーが無効であった場合は有効となります。既定では、ユーザー guest は新しいデータベースで無効になっています。

ユーザーが定義したトランザクション内では、sp_adduser は実行できません。

ユーザー guest はすべてのデータベースに存在するため、ユーザー guest を追加することはできません。ユーザー guest を有効にするには、次のように guest に CONNECT 権限を与えます。

GRANT CONNECT TO guest;
GO

権限

データベースの所有権が必要です。

A. データベース ユーザーを追加する

次の例では、既存の SQL Server ログイン Vidur を使用し、データベース ユーザー Vidur を現在のデータベースの既存のロール Recruiting に追加します。

EXEC sp_adduser 'Vidur', 'Vidur', 'Recruiting'

B. ログイン ID と同じデータベース ユーザーを追加する

次の例では、ユーザー Arvind を、SQL Server のログイン Arvind として現在のデータベースに追加します。このユーザーは既定のロール public に属しています。

EXEC sp_adduser 'Arvind'

C. サーバーレベル ログインとは異なる名前のデータベース ユーザーを追加する

次の例では、ユーザー名 Bjorn を持つ SQL Server のログイン BjornR を現在のデータベースに追加し、データベース ユーザー Bjorn をデータベース ロール Production に追加します。

EXEC sp_adduser 'BjornR', 'Bjorn', 'Production'