sp_adduser (Transact-SQL)

適用対象:SQL Server

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

重要

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

Transact-SQL 構文表記規則

構文

sp_adduser
    [ @loginame = ] N'loginame'
    [ , [ @name_in_db = ] N'name_in_db' ]
    [ , [ @grpname = ] N'grpname' ]
[ ; ]

引数

[ @loginame = ] N'loginame'

SQL Server ログインまたは Windows アカウントの名前。 @loginameは sysname で、既定値はありません。 @loginameは、既存の SQL Server ログインまたは Windows アカウントである必要があります。

[ @name_in_db = ] N'name_in_db'

新しいデータベース ユーザーの名前。 @name_in_dbは sysname で、既定値は NULL. @name_in_dbが指定されていない場合、新しいデータベース ユーザーの名前は既定で@loginameされます。 @name_in_dbを指定すると、新しいユーザーにサーバー レベルのログイン名とは異なる名前がデータベースに与えられます。

[ @grpname = ] N'grpname'

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

リターン コードの値

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

解説

sp_adduser また、ユーザーの名前であるスキーマも作成します。

ユーザーが追加されたら、ステートメント 、DENY、およびREVOKEステートメントをGRANT使用して、ユーザーによって実行されるアクティビティを制御するアクセス許可を定義します。

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

有効なロール名の一覧を表示するために使用 sp_helprole します。 ロールを指定すると、そのロールに対して定義されている権限が自動的にユーザーに与えられます。 ロールが指定されていない場合、ユーザーは既定 のパブリック ロールに付与されたアクセス許可を取得します。 ロールにユーザーを追加するには、@name_in_dbの値を指定する必要があります。 (@name_in_dbは、@loginame同じにすることができます)。

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

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

ゲスト ユーザーは、すべてのデータベース内に既に存在するため、ゲスト ユーザーを追加できません。 ゲスト ユーザーを有効にするには、次のようにゲスト CONNECT アクセス許可を付与します。

GRANT CONNECT TO guest;
GO

アクセス許可

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

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

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

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

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

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

EXEC sp_adduser 'Arvind';

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

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

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