次の方法で共有


ALTER APPLICATION ROLE (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

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

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 2012 (11.x) 以降、SQL Server と Azure SQL DB では、SHA-512 ハッシュと 32 ビットランダムおよび一意のソルトを組み合わせて使用しました。 この方法により、攻撃者がパスワードを推測することが統計的に不可能になりました。

SQL Server 2025 (17.x) プレビューでは、 パスワード ベースのキー派生関数 (PBKDF) とも呼ばれる反復ハッシュ アルゴリズム (RFC2898) が導入されています。 このアルゴリズムは SHA-512 を引き続き使用しますが、パスワードを複数回ハッシュし (100,000 回の反復)、ブルート フォース攻撃を大幅に遅くします。 この変更により、進化するセキュリティの脅威に対応したパスワード保護が強化され、お客様が NIST SP 800-63b ガイドラインに準拠するのに役立ちます。

アクセス許可

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

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

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

USE AdventureWorks2022;
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