次の方法で共有


sp_adduser (Transact-SQL)

適用対象: SQL Server

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

重要

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

Transact-SQL 構文表記規則

構文

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

引数

[ @loginame = ] N'loginame'

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

[ @name_in_db = ] N'name_in_db'

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

[ @grpname = ] N'grpname'

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

リターン コードの値

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

解説

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

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

sys.server_principalsを使用して、有効なログインの一覧を表示します。

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

ユーザー 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 を持つデータベース ユーザーを追加する

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

EXEC sp_adduser 'Arvind';

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

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

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