プリンシパルに対する権限の許可

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

このトピックでは、SQL Server Management Studio または Transact-SQL を使用して SQL Server のプリンシパルにアクセス許可を付与する方法について説明します。

このトピックの内容

はじめに

制限事項と制約事項

権限の管理を容易にする次のベスト プラクティスを考慮してください。

  • 個々のログインまたはユーザーではなく、ロールに権限を与えます。 ユーザーが入れ替わった場合、そのユーザーをロールから削除し、新しいユーザーをロールに追加します。 ロールに関連付けられている多くの権限が自動的に新しいユーザーに与えられます。 組織内の複数のユーザーが同じ権限を必要とする場合は、それぞれの権限をロールに追加します。そうすることで、それぞれのユーザーに同じ権限が与えられます。

  • 類似するセキュリティ保護可能なリソース (テーブル、ビュー、およびプロシージャ) をスキーマによって所有されるように構成した後、スキーマに対して権限を与えます。 たとえば、給与スキーマは、さまざまなテーブル、ビュー、およびストアド プロシージャを所有できます。 そのスキーマへのアクセスを許可することにより、給与の機能を実行するために必要なすべての権限を同時に与えることができます。 権限を付与できるセキュリティ保護可能なリソースの詳細については、「 Securables」を参照してください。

セキュリティ

アクセス許可

権限の許可者 (または AS オプションで指定されたプリンシパル) は、GRANT OPTION によって与えられた権限を保持しているか、権限が暗黙的に与えられる上位の権限を保持している必要があります。 sysadmin 固定サーバー ロールのメンバーは、すべての権限を許可できます。

SQL Server Management Studio を使用する

プリンシパルに権限を与えるには

  1. オブジェクト エクスプローラーで、権限を与えるオブジェクトが格納されているデータベースを展開します。

    注意

    次の手順は、ストアド プロシージャに対する権限の付与方法を説明していますが、同様の手順で、テーブル、ビュー、関数、およびセキュリティ保護可能なリソースに対して権限を追加できます。 詳細については、「GRANT (Transact-SQL)」を参照してください。

  2. [プログラミング] フォルダーを展開します。

  3. [ストアド プロシージャ] フォルダーを展開します。

  4. ストアド プロシージャを右クリックし、 [プロパティ]をクリックします。

  5. ストアド プロシージャのプロパティ –[stored_procedure_name] ダイアログ ボックスの [ページの選択] で、[アクセス許可]を選択します。 このページを使用して、ユーザーまたはロールをストアド プロシージャに追加し、追加したユーザーまたはロールが所有する権限を指定します。

  6. 完了したら、 [OK] をクリックします。

Transact-SQL の使用

プリンシパルに権限を与えるには

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

  2. [標準] ツール バーの [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。

    -- Grants EXECUTE permission on stored procedure HumanResources.uspUpdateEmployeeHireInfo to an application role called Recruiting11.   
    USE AdventureWorks2022;  
    GO  
    GRANT EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo  
        TO Recruiting11;  
    GO  
    

詳細については、「GRANT (Transact-SQL)」と「GRANT オブジェクトのアクセス許可 (Transact-SQL)」を参照してください。

参照

プリンシパル (データベース エンジン)