sp_adduser (Transact-SQL)
適用対象: SQL Server
現在のデータベースに新しいユーザーを追加します。
重要
この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 代わりに CREATE USER を使用してください。
構文
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
また、ユーザーの名前であるスキーマも作成します。
ユーザーが追加されたら、 GRANT
、 DENY
、および 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';