プリンシパルに対する権限の許可
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric SQL Database
この記事では、SQL Server Management Studio または Transact-SQL を使用して、SQL Server のプリンシパルにアクセス許可を付与する方法について説明します。
セキュリティ
権限の許可者 (または AS オプションで指定されたプリンシパル) は、GRANT OPTION によって与えられた権限を保持しているか、権限が暗黙的に与えられる上位の権限を保持している必要があります。
SQL Server Management Studio を使用します。
プリンシパルに対する権限の許可
オブジェクト エクスプローラーで、権限を与えるオブジェクトが格納されているデータベースを展開します。
Note
次の手順は、ストアド プロシージャに対する権限の付与方法を説明していますが、同様の手順で、テーブル、ビュー、関数、およびセキュリティ保護可能なリソースに対して権限を追加できます。 詳細については、「GRANT (Transact-SQL)」を参照してください。
[プログラミング] フォルダーを展開します。
[ストアド プロシージャ] フォルダーを展開します。
ストアド プロシージャを右クリックし、 [プロパティ]をクリックします。
ストアド プロシージャのプロパティダイアログ ボックスで、Permissions ページを選択します。 このページを使用して、ユーザーまたはロールをストアド プロシージャに追加し、追加したユーザーまたはロールが所有する権限を指定します。
終わったら、 [OK] を選択します。
Transact-SQL の使用
プリンシパルに対する権限の許可
オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
標準バーで、 [新しいクエリ] を選択します。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。 次の例では、ストアド プロシージャ
HumanResources.uspUpdateEmployeeHireInfo
に対する EXECUTE 権限を、Recruiting11
というアプリケーション ロールに付与します。-- 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)」を参照してください。
制限事項
権限の管理を容易にする次のベスト プラクティスを考慮してください。
個々のログインまたはユーザーではなく、ロールに権限を与えます。 ユーザーが入れ替わった場合、そのユーザーをロールから削除し、新しいユーザーをロールに追加します。 ロールに関連付けられている多くの権限が自動的に新しいユーザーに与えられます。 組織内の複数のユーザーが同じ権限を必要とする場合は、それぞれの権限をロールに追加します。そうすることで、それぞれのユーザーに同じ権限が与えられます。
類似するセキュリティ保護可能なリソース (テーブル、ビュー、およびプロシージャ) をスキーマによって所有されるように構成した後、スキーマに対して権限を与えます。 たとえば、給与スキーマは、さまざまなテーブル、ビュー、およびストアド プロシージャを所有できます。 そのスキーマへのアクセスを許可することにより、給与の機能を実行するために必要なすべての権限を同時に与えることができます。 権限を付与できるセキュリティ保護可能なリソースの詳細については、「 Securables」を参照してください。
Microsoft Fabric の SQL データベースでは、データベース ユーザーの Microsoft Entra ID のみがサポートされている認証方法です。 サーバー レベルのロールとアクセス許可は使用できません。データベース レベルのみです。 詳細については、「 Microsoft Fabric の SQL データベースでの認証」を参照してください。