sp_adduser (Transact-SQL)
現在のデータベースに新しいユーザーを追加します。
重要 : |
---|
この機能は、将来のバージョンの Microsoft SQL Server では削除される予定です。新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。代わりに CREATE USER を使用してください。 |
構文
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 は現在のデータベースで有効なデータベース ロールである必要があります。
解説
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
権限
データベースの所有権が必要です。
戻り値
0 (成功) または 1 (失敗)
例
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'
参照
関連項目
セキュリティ ストアド プロシージャ (Transact-SQL)
sys.server_principals (Transact-SQL)
sp_addrole (Transact-SQL)
CREATE USER (Transact-SQL)
sp_dropuser (Transact-SQL)
sp_grantdbaccess (Transact-SQL)
sp_grantlogin (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)