次の方法で共有


ストアド プロシージャに対する権限の許可

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

この記事では、SQL Server で SQL Server Management Studio または Transact-SQL を使用して、ストアド プロシージャへのアクセス許可を付与する方法について説明します。 権限は、データベース内の既存のユーザー、データベース ロール、またはアプリケーション ロールに許可することができます。

制限事項と制約事項

アクセス許可

付与者 (または AS オプションで指定されたプリンシパル) は、GRANT OPTION で指定されたアクセス許可自体を保持しているか、アクセス許可が暗黙的に付与される上位のアクセス許可を保持している必要があります。 プロシージャが属しているスキーマに対する ALTER 権限、またはプロシージャに対する CONTROL 権限が必要です。 詳細については、「GRANT オブジェクトのアクセス許可」を参照してください。

SQL Server Management Studio を使用します。

ストアド プロシージャに対して権限を許可するには

  1. オブジェクト エクスプローラーで、データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。

  2. [データベース]を展開し、プロシージャが属するデータベースを展開し、 [プログラミング]を展開します。

  3. [ストアド プロシージャ] を展開し、アクセス許可を付与するプロシージャを右クリックして、[プロパティ] を選択します。

  4. [ストアド プロシージャのプロパティ]で、 [権限] ページを選択します。

  5. ユーザー、データベース ロール、またはアプリケーション ロールにアクセス許可を付与するには、[検索] を選択します。

  6. [ユーザーまたはロールの選択] で、[オブジェクトの種類] を選択して目的のユーザーやロールを追加または削除します。

  7. [参照] を選択してユーザーまたはロールの一覧を表示します。 権限を許可するユーザーまたはロールを選択します。

  8. [明示的な権限] グリッドで、指定したユーザーまたはロールに許可する権限を選択します。 権限の説明については、「権限 (データベース エンジン)」を参照してください。

[許可] を選択すると、指定した権限が与えられます。 [許可の有無] を選択すると、指定した権限をさらに他のプリンシパルにも許可できるようになります。

Transact-SQL の使用

ストアド プロシージャに対して権限を許可するには

  1. データベース エンジンに接続します。

  2. 標準バーから、 [新しいクエリ] を選択します。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。 この例では、ストアド プロシージャ EXECUTE に対する HumanResources.uspUpdateEmployeeHireInfo 権限を、アプリケーション ロール Recruiting11に対して許可します。

USE AdventureWorks2022;
GRANT EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
    TO Recruiting11;
GO

スキーマ内のすべてのストアド プロシージャへのアクセス許可を付与するには

  1. データベース エンジンに接続します。

  2. 標準バーから、 [新しいクエリ] を選択します。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。 この例では、HumanResources スキーマに現在または将来存在するすべてのストアド プロシージャへの EXECUTE アクセス許可を、Recruiting11 という名前のアプリケーション ロールに付与します。

USE AdventureWorks2022;
GRANT EXECUTE ON SCHEMA::HumanResources
    TO Recruiting11;
GO