次の方法で共有


ALTER APPLICATION ROLE (Transact-SQL)

アプリケーション ロールの名前、パスワード、または既定のスキーマを変更します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

ALTER APPLICATION ROLE application_role_name 
    WITH <set_item> [ ,...n ]

<set_item> ::= 
    NAME = new_application_role_name 
    | PASSWORD = 'password'
    | DEFAULT_SCHEMA = schema_name

引数

  • application_role_name
    変更するアプリケーション ロールの名前です。

  • NAME = new_application_role_name
    アプリケーション ロールの新しい名前を指定します。この名前は、データベース内のどのプリンシパルへの参照にも使用されていない名前である必要があります。

  • PASSWORD = 'password'
    アプリケーション ロールのパスワードを指定します。password は、SQL Server のインスタンスを実行しているコンピューターの Windows パスワード ポリシーの要件を満たす必要があります。強力なパスワードの使用をお勧めします。

  • DEFAULT_SCHEMA = schema_name
    オブジェクトの名前を解決するときに、サーバーで最初に検索されるスキーマを指定します。schema_name には、データベースに存在しないスキーマも指定できます。

説明

新しいアプリケーション ロールの名前が既にデータベースに存在する場合、このステートメントは失敗します。アプリケーション ロールの名前、パスワード、または既定のスキーマが変更されても、そのロールに関連付けられている ID は変更されません。

重要な注意事項重要

パスワードの有効期限ポリシーは、アプリケーション ロールのパスワードには適用されません。このため、強力なパスワードを選択する際には十分注意してください。アプリケーション ロールを呼び出すアプリケーションは、これらのパスワードを格納する必要があります。

アプリケーション ロールは、sys.database_principals カタログ ビューで参照できます。

注記注意

SQL Server 2005 でのスキーマの動作は、以前のバージョンの SQL Server から変更されました。コードで、スキーマがデータベース ユーザーと同じであることが前提となっている場合、正しい結果が返されない場合があります。CREATE SCHEMA、ALTER SCHEMA、DROP SCHEMA、CREATE USER、ALTER USER、DROP USER、CREATE ROLE、ALTER ROLE、DROP ROLE、CREATE APPROLE、ALTER APPROLE、DROP APPROLE、ALTER AUTHORIZATION のいずれかの DDL ステートメントが使用されたことのあるデータベースでは、sysobjects を含む以前のカタログ ビューを使用しないでください。このようなデータベースでは、新しいカタログ ビューを使用する必要があります。新しいカタログ ビューでは、SQL Server 2005 で導入されたプリンシパルとスキーマの分離が考慮されます。カタログ ビューの詳細については、「カタログ ビュー (Transact-SQL)」を参照してください。

権限

データベースに対する ALTER ANY APPLICATION ROLE 権限が必要です。既定のスキーマを変更するには、アプリケーション ロールに対する ALTER 権限も必要です。アプリケーション ロールは、それ自体の既定のスキーマを変更できますが、名前とパスワードは変更できません。

A. アプリケーション ロールの名前を変更する

次の例では、アプリケーション ロール weekly_receipts の名前を receipts_ledger に変更します。

USE AdventureWorks2008R2;
CREATE APPLICATION ROLE weekly_receipts 
    WITH PASSWORD = '987Gbv8$76sPYY5m23' , 
    DEFAULT_SCHEMA = Sales;
GO
ALTER APPLICATION ROLE weekly_receipts 
    WITH NAME = receipts_ledger;
GO

B. アプリケーション ロールのパスワードを変更する

次の例では、アプリケーション ロール receipts_ledger のパスワードを変更します。

ALTER APPLICATION ROLE receipts_ledger 
    WITH PASSWORD = '897yUUbv867y$200nk2i';
GO

C. 名前、パスワード、および既定のスキーマを変更する

次の例では、アプリケーション ロール receipts_ledger の名前、パスワード、および既定のスキーマをすべて同時に変更します。

ALTER APPLICATION ROLE receipts_ledger 
    WITH NAME = weekly_ledger, 
    PASSWORD = '897yUUbv77bsrEE00nk2i', 
    DEFAULT_SCHEMA = Production;
GO