sp_addalias (Transact-SQL)
データベース内のユーザーにログインをマップします。
重要 : |
---|
sp_addalias では、以前のバージョンの SQL Server との互換性が提供されます。この機能は、Microsoft SQL Server の次のバージョンで削除されます。新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 SQL Server 2005 データベース エンジン では、別名を使用する代わりに、ロールおよびロールへ権限を与える機能が使用されます。詳細については、「CREATE USER (Transact-SQL)」および「CREATE ROLE (Transact-SQL)」を参照してください。 |
構文
sp_addalias [ @loginame = ] 'login' , [ @name_in_db = ] 'alias_user'
引数
- [ @loginame = ] 'login'
別名を割り当てるログインの名前を指定します。login のデータ型は sysname で、既定値はありません。login は、SQL Server インスタンスに接続するための権限を持つ有効な SQL Server ログインまたは Microsoft Windows ユーザーであることが必要です。既に存在するログインやユーザー、またはデータベース内に既に存在するユーザーの別名として割り当てられているログインやユーザーは指定できません。
- [ @name_in_db = ] 'alias_user'
ログインをマップするユーザーの名前を指定します。alias_user のデータ型は sysname で、既定値はありません。alias_user は、ログインの別名が指定されているデータベース内のユーザーであることが必要です。Windows ユーザーにマップする場合は、データベースで認識されている名前を指定します。
解説
ログインは、任意のデータベース内のユーザーにマップすることができます。sp_addalias は、ユーザーに別名が必要とされるデータベース内でのみ実行します。login パラメータを使ってデータベース エンジン インスタンスに接続した場合、ユーザーは alias_user に適用されている権限に基づいてデータベース内の処理を実行できます。
メモ : |
---|
sa ログインに対して別名は作成できません。 |
ログインは、次の場合にデータベースにアクセスできます。
- データベース内に関連付けられたユーザー アカウントがある場合。
- データベース内に、データベース所有者または sysadmin 固定サーバー ロールのメンバが sp_addalias を使用して追加した別名がある場合。
- データベース内で guest アカウントが有効になっている場合。
sp_addalias ストアド プロシージャを、ユーザー定義のトランザクションから実行することはできません。
次の表は、sp_addalias と組み合わせて使用できるシステム ストアド プロシージャです。
ストアド プロシージャ | 説明 |
---|---|
sp_helplogins |
有効な login 値の一覧を返します。 |
sp_helpuser |
ログインが使用されるデータベース内の、有効な alias_user 値の一覧を返します。 |
sp_dropalias |
別名のマッピングを削除します。 |
権限
db_owner 固定データベース ロールのメンバシップが必要です。
戻り値
0 (成功) または 1 (失敗)
例
次の例では、SQL Server ログインの Victoria
を、AdventureWorks
データベース内の既存のユーザー Albert
にマップする方法を示します。
USE AdventureWorks;
EXEC sp_addalias 'Victoria', 'Albert' ;
参照
関連項目
セキュリティ ストアド プロシージャ (Transact-SQL)
CREATE USER (Transact-SQL)
CREATE ROLE (Transact-SQL)
sp_dropalias (Transact-SQL)
sp_helplogins (Transact-SQL)
sp_helpuser (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)
sp_grantdbaccess (Transact-SQL)