適用対象:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric の SQL 分析エンドポイント
Microsoft Fabric Warehouse
Microsoft Fabric SQL Database
SQL Server のすべてのセキュリティ保護可能なリソースには、プリンシパルに付与できるアクセス許可が関連付けられています。 データベース エンジン での権限は、ログインおよびサーバー ロールに割り当てられたサーバー レベル、およびデータベース ユーザーおよびデータベース ロールに割り当てられたデータベース レベルで管理されます。 Azure SQL Database のモデルには、データベース権限用に同じシステムがありますが、サーバー レベルの権限は使用できません。 このトピックでは、権限の一覧を示します。 アクセス許可の一般的な実装については、「 Getting Started with Database Engine Permissions」を参照してください。
SQL Server 2022 (16.x) のアクセス許可の合計数は 292 です。 Azure SQL Database では、292 のアクセス許可が公開されています。 ほとんどの権限はすべてのプラットフォームに適用されますが、一部は適用されません。 たとえば、サーバー レベルの権限は Azure SQL Database に対して付与することができず、いくつかの権限は、Azure SQL Database のみで機能します。 新しい権限は、新しいリリースで順次導入されます。 SQL Server 2019 (15.x) では、248 のアクセス許可が公開されています。SQL Server 2017 (14.x) では、238 のアクセス許可が公開されました。 SQL Server 2016 (13.x) では、230 のアクセス許可が公開されました。 SQL Server 2014 (12.x) では、219 のアクセス許可が公開されました。 SQL Server 2012 (11.x) では、214 のアクセス許可が公開されました。 SQL Server 2008 R2 (10.50.x) では、195 のアクセス許可が公開されました。 sys.fn_builtin_permissions トピックでは、最近のバージョンでどの権限が追加されたかを明確に記載しています。
Microsoft Fabric の SQL データベースでは、データベース レベルのユーザーとロールのみがサポートされます。 サーバー レベルのログイン、ロール、sa アカウントは使用できません。 Microsoft Fabric の SQL データベースでは、データベース ユーザーの Microsoft Entra ID のみがサポートされている認証方法です。 詳細については、「 Microsoft Fabric の SQL データベースでの認証」を参照してください。
必要な権限を理解したら、GRANT、REVOKE、および DENY ステートメントを使用して、サーバー レベルの権限をログインまたはサーバー ロールに付与し、データベース レベルの権限をユーザーまたはデータベース ロールに付与します。 次に例を示します。
GRANT SELECT ON SCHEMA::HumanResources TO role_HumanResourcesDept;
REVOKE SELECT ON SCHEMA::HumanResources TO role_HumanResourcesDept;
権限システムの計画のヒントについては、「 データベース エンジンの権限の概要」を参照してください。
権限の名前付け規則
ここでは、権限に名前を付ける際に従う一般的な規則について説明します。
コントロール
権限を与えられたユーザーに所有権のような権限を与えます。 権限を与えられたユーザーは、事実上、セキュリティ保護可能なリソースに対する定義済みのすべての権限を持っています。 CONTROL を許可されたプリンシパルには、セキュリティ保護可能なリソースに対する権限も許可できます。 SQL Server のセキュリティ モデルは階層構造であるため、特定のスコープの CONTROL には、そのスコープ下のセキュリティ保護可能なすべてのリソースに対する CONTROL が暗黙的に含まれます。 たとえば、データベースに対する CONTROL は、データベースに対するすべての権限、データベース内のすべてのアセンブリに対するすべての権限、データベース内のすべてのスキーマに対するすべての権限、およびデータベース内のすべてのスキーマに含まれているオブジェクトに対するすべての権限を意味します。
変える
セキュリティ保護可能な特定のリソースのプロパティを変更できるようにします。ただし、所有権は変更できません。 スコープに対して許可された場合、ALTER では、そのスコープに含まれているセキュリティ保護可能なすべてのリソースの変更、作成、または削除も行えるようになります。 たとえば、スキーマに対する ALTER 権限には、スキーマのオブジェクトを作成、変更、および削除する権限が含まれています。
ALTER ANY <Server Securable>。ここで、Server Securable には、任意のセキュリティ保護可能なサーバーを指定できます。
Server Securableの個々のインスタンスを作成、変更、削除できるようにします。 たとえば、ALTER ANY LOGIN では、インスタンス内の任意のログインを作成、変更、または削除できます。
ALTER ANY <Database Securable>。ここで、Database Securable には、データベース レベルの任意のセキュリティ保護可能なリソースを指定できます。
Database Securableの個々のインスタンスを CREATE、ALTER、DROP できるようにします。 たとえば、ALTER ANY SCHEMA では、データベース内の任意のスキーマを作成、変更、または削除できます。
責任を引き受ける
権限を与えられたユーザーが、許可されたセキュリティ保護可能なリソースの所有権を使用できるようにします。
IMPERSONATE <ログイン>
権限を与えられたユーザーが、Login の権限を借用できるようにします。
ユーザーになりすます <ユーザー>
権限を与えられたユーザーが、User の権限を借用できるようにします。
CREATE <Server Securable>
権限を与えられたユーザーが Server Securableを作成できるようにします。
CREATE <Database Securable>
権限を与えられたユーザーが Database Securableを作成できるようにします。
CREATE <Schema に含まれるセキュリティ保護可能なリソース>
スキーマに含まれているセキュリティ保護可能なリソースを作成できるようにします。 ただし、特定のスキーマ内でセキュリティ保護可能なリソースを作成するには、そのスキーマに対する ALTER 権限が必要です。
ビューの定義
権限を与えられたユーザーがメタデータにアクセスできるようにします。
参考文献
テーブルを参照する FOREIGN KEY 制約を作成するには、そのテーブルに対する REFERENCES 権限が必要です。
オブジェクトを参照する
WITH SCHEMABINDING
句を含む関数またはビューを作成するには、そのオブジェクトに対する REFERENCES 権限が必要です。
SQL Server 権限の一覧表
次の画像は、アクセス許可とそれらの関連性を示します。 一部の高いレベルの許可 ( CONTROL SERVER
など) は複数回列挙されています。 この記事のポスターは、読み取るには小さすぎます。 画像をクリックすると、フルサイズのデータベース エンジンのアクセス許可ポスターを PDF 形式でダウンロードできます。
特定のセキュリティ保護可能なリソースに適用できる権限
次の表に、主な権限のクラスおよび各権限を適用できるセキュリティ保護可能なリソースの種類を示します。
権限 | 適用対象 |
---|---|
変える | オブジェクトのすべてのクラス (TYPE を除く)。 |
コントロール | オブジェクトのすべてのクラス: AGGREGATE、 APPLICATION ROLE、 ASSEMBLY、 ASYMMETRIC KEY、 AVAILABILITY GROUP、 CERTIFICATE、 CONTRACT、 資格情報 DATABASE、 DATABASE SCOPED CREDENTIAL、 DEFAULT、 ENDPOINT、 FULLTEXT CATALOG、 FULLTEXT STOPLIST、 FUNCTION、 LOGIN、 MESSAGE TYPE、 PROCEDURE、 QUEUE、 REMOTE SERVICE BINDING、 ROLE、 ROUTE、 RULE、 SCHEMA、 SEARCH PROPERTY LIST、 SERVER、 SERVER ROLE、 SERVICE、 SYMMETRIC KEY、 SYNONYM、 TABLE、 TYPE、 利用者 VIEW、および XML スキーマ コレクション |
削除 | オブジェクトのすべてのクラス (DATABASE SCOPED CONFIGURATION、SERVER、および TYPE を除く)。 |
実行せよ | CLR 型、外部スクリプト、プロシージャ (Transact-SQL と CLR)、スカラー関数、集計関数 (Transact-SQL と CLR)、およびシノニム |
偽装 | ログインとユーザー |
挿入する | シノニム、テーブルと列、ビューと列。 データベース、スキーマ、またはオブジェクト レベルで権限を付与できます。 |
受ける | Service Broker キュー |
参考文献 | AGGREGATE、 ASSEMBLY、 ASYMMETRIC KEY、 CERTIFICATE、 CONTRACT、 資格情報 (適用対象: SQL Server 2022 (16.x) 以降)。 DATABASE、 DATABASE SCOPED CREDENTIAL、 FULLTEXT CATALOG、 FULLTEXT STOPLIST、 FUNCTION、 MESSAGE TYPE、 PROCEDURE、 QUEUE、 RULE、 SCHEMA、 SEARCH PROPERTY LIST、 SEQUENCE OBJECT、 SYMMETRIC KEY、 TABLE、 TYPE、 VIEW、および XML スキーマ コレクション |
選択 | シノニム、テーブルと列、ビューと列。 データベース、スキーマ、またはオブジェクト レベルで権限を付与できます。 |
責任を引き受ける | オブジェクトのすべてのクラス (DATABASE SCOPED CONFIGURATION、LOGIN、SERVER、および USER を除く)。 |
更新 | シノニム、テーブルと列、ビューと列。 データベース、スキーマ、またはオブジェクト レベルで権限を付与できます。 |
変更の追跡を表示する | スキーマとテーブル |
ビューの定義 | オブジェクトのすべてのクラス (DATABASE SCOPED CONFIGURATION および SERVER を除く)。 |
注意事項
セットアップ時にシステム オブジェクトに付与された既定のアクセス許可は、発生する可能性のある脅威に対して慎重に評価されているため、SQL Server のインストールの際、セキュリティ強化の一部として変更する必要はありません。 何らかのシステム オブジェクトのアクセス許可の変更によって、機能が制限または中断される可能性があり、SQL Server のインストールが未サポート状態のままになる場合があります。
SQL Server 権限
次の表に、SQL Server のすべての権限の一覧を示します。 Azure SQL Database のアクセス許可は、サポートされている基本のセキュリティ保護可能なリソースにのみ使用できます。 Azure SQL Database ではサーバー レベルのアクセス許可を付与することはできませんが、代わりにデータベースのアクセス許可を付与できる場合があります。
セキュリティ保護可能な基本リソース | セキュリティ保護可能な基本リソースに対する粒度の細かい権限 | アクセス許可の種類コード | 基本リソースを含んでいる別のセキュリティ保護可能なリソース | セキュリティ保護可能なコンテナーに対する権限 (基本リソースに対する粒度の細かい権限を暗示) |
---|---|---|---|---|
アプリケーションの役割 | 変える | アル | データベース | 任意のアプリケーション ロールを変更する |
アプリケーションの役割 | コントロール | CL(塩素) | データベース | コントロール |
アプリケーションの役割 | ビューの定義 | VW | データベース | ビューの定義 |
集会 | 変える | アル | データベース | 任意のアセンブリを変更 |
集会 | コントロール | CL(塩素) | データベース | コントロール |
集会 | 参考文献 | RF | データベース | 参考文献 |
集会 | 責任を引き受ける | 宛先 | データベース | コントロール |
集会 | ビューの定義 | VW | データベース | ビューの定義 |
非対称キー | 変える | アル | データベース | 非対称キーを変更する |
非対称キー | コントロール | CL(塩素) | データベース | コントロール |
非対称キー | 参考文献 | RF | データベース | 参考文献 |
非対称キー | 責任を引き受ける | 宛先 | データベース | コントロール |
非対称キー | ビューの定義 | VW | データベース | ビューの定義 |
可用性グループ (Availability Group) | 変える | アル | サーバー | すべての可用性グループを変更 |
可用性グループ (Availability Group) | コントロール | CL(塩素) | サーバー | CONTROL SERVER |
可用性グループ (Availability Group) | 責任を引き受ける | 宛先 | サーバー | CONTROL SERVER |
可用性グループ (Availability Group) | ビューの定義 | VW | サーバー | 任意の定義を表示 |
証書 | 変える | アル | データベース | ALTER ANY CERTIFICATE |
証書 | コントロール | CL(塩素) | データベース | コントロール |
証書 | 参考文献 | RF | データベース | 参考文献 |
証書 | 責任を引き受ける | 宛先 | データベース | コントロール |
証書 | ビューの定義 | VW | データベース | ビューの定義 |
契約 | 変える | アル | データベース | 任意の契約を変更する |
契約 | コントロール | CL(塩素) | データベース | コントロール |
契約 | 参考文献 | RF | データベース | 参考文献 |
契約 | 責任を引き受ける | 宛先 | データベース | コントロール |
契約 | ビューの定義 | VW | データベース | ビューの定義 |
資格 情報 | コントロール | CL(塩素) | サーバー | CONTROL SERVER |
資格 情報 | 参考文献 | RF | サーバー | 任意の資格情報を変更する |
データベース | データベースの一括操作の管理 | DABO | サーバー | CONTROL SERVER |
データベース | 変える | アル | サーバー | 任意のデータベースを変更する |
データベース | 任意のアプリケーション ロールを変更する | 鼻翼 | サーバー | CONTROL SERVER |
データベース | 任意のアセンブリを変更 | 残念ながら | サーバー | CONTROL SERVER |
データベース | 非対称キーを変更する | アラク | サーバー | CONTROL SERVER |
データベース | ALTER ANY CERTIFICATE | ALCF | サーバー | CONTROL SERVER |
データベース | ALTER ANY COLUMN ENCRYPTION KEY | ALCK 適用対象: SQL Server (SQL Server 2016 (13.x) から現在のバージョンまで、Azure SQL Database)。 |
サーバー | CONTROL SERVER |
データベース | 任意のカラムマスターキーを変更する | ALCM 適用対象: SQL Server (SQL Server 2016 (13.x) から現在のバージョンまで、Azure SQL Database)。 |
サーバー | CONTROL SERVER |
データベース | 任意の契約を変更する | ALSC | サーバー | CONTROL SERVER |
データベース | 任意のデータベース監査の変更 | アルダ | サーバー | サーバー監査の変更許可 |
データベース | ALTER ANY DATABASE DDL TRIGGER | AltG | サーバー | CONTROL SERVER |
データベース | 任意のデータベースイベント通知を変更する | ALED | サーバー | ALTER ANY EVENT NOTIFICATION |
データベース | ALTER ANY DATABASE イベント セッション | AADS | サーバー | 任意のイベントセッションを変更する |
データベース | ALTER ANY DATABASE EVENT SESSION ADD EVENT | LDAE | サーバー | ALTER ANY EVENT SESSION ADD EVENT |
データベース | ALTER ANY DATABASE EVENT SESSION ADD TARGET | LDAT | サーバー | ALTER ANY EVENT SESSION ADD TARGET |
データベース | ALTER ANY DATABASE EVENT SESSION DISABLE | DDES | サーバー | ALTER ANY EVENT SESSION DISABLE |
データベース | ALTER ANY DATABASE EVENT SESSION DROP EVENT | LDDE | サーバー | ALTER ANY EVENT SESSION DROP EVENT |
データベース | ALTER ANY DATABASE EVENT SESSION DROP TARGET | LDDT | サーバー | ALTER ANY EVENT SESSION DROP TARGET |
データベース | ALTER ANY DATABASE EVENT SESSION ENABLE | EDES | サーバー | ALTER ANY EVENT SESSION ENABLE |
データベース | ALTER ANY DATABASE EVENT SESSION OPTION | LDSO | サーバー | ALTER ANY EVENT SESSION OPTION |
データベース | ALTER ANY DATABASE SCOPED CONFIGURATION | ALDC 適用対象: SQL Server (SQL Server 2016 (13.x) から現在のバージョンまで、Azure SQL Database)。 |
サーバー | CONTROL SERVER |
データベース | 任意のデータスペースを変更する | ALDS | サーバー | CONTROL SERVER |
データベース | すべての外部データ ソースを変更します。 | AEDS | サーバー | CONTROL SERVER |
データベース | 任意の外部のファイル形式を変更します。 | AEFF | サーバー | CONTROL SERVER |
データベース | ALTER ANY EXTERNAL JOB | AESJ | サーバー | CONTROL SERVER |
データベース | ALTER ANY EXTERNAL LANGUAGE | アッラ | サーバー | CONTROL SERVER |
データベース | ALTER ANY EXTERNAL LIBRARY | ALEL | サーバー | CONTROL SERVER |
データベース | ALTER ANY EXTERNAL STREAM | AEST | サーバー | CONTROL SERVER |
データベース | 任意のフルテキストカタログを変更 | ALFT | サーバー | CONTROL SERVER |
データベース | 任意のマスクを変更します。 | AAMK 適用対象: SQL Server (SQL Server 2016 (13.x) から現在のバージョンまで、Azure SQL Database)。 |
サーバー | CONTROL SERVER |
データベース | 任意のメッセージ型を変更する | ALMT | サーバー | CONTROL SERVER |
データベース | 任意のリモートサービスバインディングを変更する | ALSB | サーバー | CONTROL SERVER |
データベース | あらゆるロールを変更する | ALRL | サーバー | CONTROL SERVER |
データベース | 任意のルートを変更 | ALRT | サーバー | CONTROL SERVER |
データベース | 任意のスキーマを変更する | ALSM | サーバー | CONTROL SERVER |
データベース | すべてのセキュリティ ポリシーを変更します。 | ALSP 適用対象: SQL Server (SQL Server 2016 (13.x) から現在のバージョンまで、Azure SQL Database)。 |
サーバー | CONTROL SERVER |
データベース | 秘密度分類を変更する | AASC 適用対象: SQL Server (SQL Server 2019 (15.x) から現在のバージョンまで)、Azure SQL Database。 |
サーバー | CONTROL SERVER |
データベース | 任意のサービスを変更する | ALSV | サーバー | CONTROL SERVER |
データベース | 対称鍵の変更可能 | ALSK | サーバー | CONTROL SERVER |
データベース | 任意のユーザーを変更する | ALUS | サーバー | CONTROL SERVER |
データベース | ALTER LEDGER | ALR | サーバー | コントロール |
データベース | ALTER LEDGER の構成 | ALC | サーバー | CONTROL SERVER |
データベース | 認証 | 認証 | サーバー | サーバーの認証 |
データベース | データベースをバックアップ | BADB | サーバー | CONTROL SERVER |
データベース | バックアップ ログ | BALO | サーバー | CONTROL SERVER |
データベース | チェックポイント | CP | サーバー | CONTROL SERVER |
データベース | 繋ぐ | 一酸化炭素 | サーバー | CONTROL SERVER |
データベース | 接続レプリケーション | 株式会社 | サーバー | CONTROL SERVER |
データベース | コントロール | CL(塩素) | サーバー | CONTROL SERVER |
データベース | 集計関数を作成する | 巨岩 | サーバー | CONTROL SERVER |
データベース | 任意のデータベース イベント セッションを作成する | CRDS | サーバー | 任意のイベント セッションを作成する |
データベース | CREATE ASSEMBLY | CRAS | サーバー | CONTROL SERVER |
データベース | 非対称キーを作成する | CRAK | サーバー | CONTROL SERVER |
データベース | 証明書の作成 | CRCF | サーバー | CONTROL SERVER |
データベース | 契約を作成 | CRSC | サーバー | CONTROL SERVER |
データベース | データベースを作成 | CRDB | サーバー | 任意のデータベースを作成する |
データベース | データベースDDLイベント通知の作成 | CRED | サーバー | CREATE DDL イベント通知 |
データベース | デフォルトを作成する | CRDF | サーバー | CONTROL SERVER |
データベース | CREATE EXTERNAL LANGUAGE | CRLA | サーバー | CONTROL SERVER |
データベース | 外部ライブラリを作成する | CREL | サーバー | CONTROL SERVER |
データベース | フルテキスト カタログの作成 | CRFT | サーバー | CONTROL SERVER |
データベース | CREATE 関数 | CRFN | サーバー | CONTROL SERVER |
データベース | メッセージの種類を作成する | CRMT | サーバー | CONTROL SERVER |
データベース | 手順の作成 | CRPR | サーバー | CONTROL SERVER |
データベース | キューを作成 | CRQU | サーバー | CONTROL SERVER |
データベース | CREATE REMOTE SERVICE BINDING | CRSB | サーバー | CONTROL SERVER |
データベース | 役割を作成 | CRRL | サーバー | CONTROL SERVER |
データベース | ルートを作成 | 持続的腎代替療法 (CRRT) | サーバー | CONTROL SERVER |
データベース | ルールを作成 | CRRU | サーバー | CONTROL SERVER |
データベース | スキーマを作成 (CREATE SCHEMA) | CRSM | サーバー | CONTROL SERVER |
データベース | CREATE SERVICE | CRSV | サーバー | CONTROL SERVER |
データベース | 対称キーの作成 | CRSK | サーバー | CONTROL SERVER |
データベース | シノニムの作成 | CRSN | サーバー | CONTROL SERVER |
データベース | テーブルを作成 | CRTB | サーバー | CONTROL SERVER |
データベース | 種類の作成 | CRTY | サーバー | CONTROL SERVER |
データベース | ユーザーを作成する | CUSR | サーバー | CONTROL SERVER |
データベース | VIEW の作成 | CRVW | サーバー | CONTROL SERVER |
データベース | XML スキーマ コレクションの作成 | CRXS | サーバー | CONTROL SERVER |
データベース | 削除 | DL | サーバー | CONTROL SERVER |
データベース | データベース イベント セッションを削除する | DRDS | サーバー | 任意のイベント セッションを削除する |
データベース | 台帳を有効にする | エル | サーバー | コントロール |
データベース | 実行せよ | 旧 | サーバー | CONTROL SERVER |
データベース | 外部エンドポイントを実行する | EAEE | サーバー | CONTROL SERVER |
データベース | 外部スクリプトを実行する | EAES 適用対象: SQL Server (SQL Server 2016 (13.x) から現在のバージョンまで)。 |
サーバー | CONTROL SERVER |
データベース | 挿入する | で | サーバー | CONTROL SERVER |
データベース | データベース接続の終了 | KIDC 適用対象: Azure SQL データベース のみ SQL Server では、ALTER ANY CONNECTION を使用します。 |
サーバー | 任意の接続を変更する |
データベース | 参考文献 | RF | サーバー | CONTROL SERVER |
データベース | 選択 | SL | サーバー | CONTROL SERVER |
データベース | ショープラン | SPLN | サーバー | ALTER TRACE |
データベース | クエリ通知をサブスクライブする | SUQN | サーバー | CONTROL SERVER |
データベース | 責任を引き受ける | 宛先 | サーバー | CONTROL SERVER |
データベース | マスク解除します。 | UMSK 適用対象: SQL Server (SQL Server 2016 (13.x) から現在のバージョンまで、Azure SQL Database)。 |
サーバー | CONTROL SERVER |
データベース | 更新 | 上 | サーバー | CONTROL SERVER |
データベース | 列の暗号化キーの定義を表示します。 | VWCK 適用対象: SQL Server (SQL Server 2016 (13.x) から現在のバージョンまで、Azure SQL Database)。 |
サーバー | サーバー状態を表示 |
データベース | 任意の列のマスター_キーの定義の表示 | VWCM 適用対象: SQL Server (SQL Server 2016 (13.x) から現在のバージョンまで、Azure SQL Database)。 |
サーバー | サーバー状態を表示 |
データベース | 秘密度分類を表示する | VASC | サーバー | CONTROL SERVER |
データベース | 暗号化されたセキュリティで保護された定義を表示する | VCD | サーバー | 暗号化で保護された定義を表示する |
データベース | データベースのパフォーマンス状態の表示 | VDP | サーバー | サーバーのパフォーマンス状態の表示 |
データベース | データベース セキュリティ監査の表示 | VDSA | サーバー | CONTROL SERVER |
データベース | データベースのセキュリティ状態の表示 | VDS | サーバー | サーバーのセキュリティ状態の表示 |
データベース | データベース状態の表示 | VWDS | サーバー | サーバー状態を表示 |
データベース | ビューの定義 | VW | サーバー | 任意の定義を表示 |
データベース | 台帳のコンテンツを表示する | VLC | サーバー | コントロール |
データベース | セキュリティ定義の表示 | VWS | サーバー | セキュリティ定義を表示する |
データベース | パフォーマンス定義の表示 | VWP | サーバー | パフォーマンス定義を表示する |
DATABASE SCOPED CREDENTIAL | 変える | アル | データベース | コントロール |
DATABASE SCOPED CREDENTIAL | コントロール | CL(塩素) | データベース | コントロール |
DATABASE SCOPED CREDENTIAL | 参考文献 | RF | データベース | 参考文献 |
DATABASE SCOPED CREDENTIAL | 責任を引き受ける | 宛先 | データベース | コントロール |
DATABASE SCOPED CREDENTIAL | ビューの定義 | VW | データベース | ビューの定義 |
エンドポイント | 変える | アル | サーバー | 任意のエンドポイントを変更する |
エンドポイント | 繋ぐ | 一酸化炭素 | サーバー | CONTROL SERVER |
エンドポイント | コントロール | CL(塩素) | サーバー | CONTROL SERVER |
エンドポイント | 責任を引き受ける | 宛先 | サーバー | CONTROL SERVER |
エンドポイント | ビューの定義 | VW | サーバー | 任意の定義を表示 |
全文カタログ | 変える | アル | データベース | 任意のフルテキストカタログを変更 |
全文カタログ | コントロール | CL(塩素) | データベース | コントロール |
全文カタログ | 参考文献 | RF | データベース | 参考文献 |
全文カタログ | 責任を引き受ける | 宛先 | データベース | コントロール |
全文カタログ | ビューの定義 | VW | データベース | ビューの定義 |
全文ストップリスト | 変える | アル | データベース | 任意のフルテキストカタログを変更 |
全文ストップリスト | コントロール | CL(塩素) | データベース | コントロール |
全文ストップリスト | 参考文献 | RF | データベース | 参考文献 |
全文ストップリスト | 責任を引き受ける | 宛先 | データベース | コントロール |
全文ストップリスト | ビューの定義 | VW | データベース | ビューの定義 |
ログイン | 変える | アル | サーバー | 任意のログインを変更する |
ログイン | コントロール | CL(塩素) | サーバー | CONTROL SERVER |
ログイン | 偽装 | IM | サーバー | CONTROL SERVER |
ログイン | ビューの定義 | VW | サーバー | 任意の定義を表示 |
メッセージの種類 | 変える | アル | データベース | 任意のメッセージ型を変更する |
メッセージの種類 | コントロール | CL(塩素) | データベース | コントロール |
メッセージの種類 | 参考文献 | RF | データベース | 参考文献 |
メッセージの種類 | 責任を引き受ける | 宛先 | データベース | コントロール |
メッセージの種類 | ビューの定義 | VW | データベース | ビューの定義 |
オブジェクト | 変える | アル | スキーマ | 変える |
オブジェクト | コントロール | CL(塩素) | スキーマ | コントロール |
オブジェクト | 削除 | DL | スキーマ | 削除 |
オブジェクト | 実行せよ | 旧 | スキーマ | 実行せよ |
オブジェクト | 挿入する | で | スキーマ | 挿入する |
オブジェクト | 受ける | RC | スキーマ | コントロール |
オブジェクト | 参考文献 | RF | スキーマ | 参考文献 |
オブジェクト | 選択 | SL | スキーマ | 選択 |
オブジェクト | 責任を引き受ける | 宛先 | スキーマ | コントロール |
オブジェクト | マスク解除します。 | UMSK | スキーマ | マスク解除します。 |
オブジェクト | 更新 | 上 | スキーマ | 更新 |
オブジェクト | 変更の追跡を表示する | VWCT | スキーマ | 変更の追跡を表示する |
オブジェクト | ビューの定義 | VW | スキーマ | ビューの定義 |
リモート サービス バインド | 変える | アル | データベース | 任意のリモートサービスバインディングを変更する |
リモート サービス バインド | コントロール | CL(塩素) | データベース | コントロール |
リモート サービス バインド | 責任を引き受ける | 宛先 | データベース | コントロール |
リモート サービス バインド | ビューの定義 | VW | データベース | ビューの定義 |
役割 | 変える | アル | データベース | あらゆるロールを変更する |
役割 | コントロール | CL(塩素) | データベース | コントロール |
役割 | 責任を引き受ける | 宛先 | データベース | コントロール |
役割 | ビューの定義 | VW | データベース | ビューの定義 |
ルート | 変える | アル | データベース | 任意のルートを変更 |
ルート | コントロール | CL(塩素) | データベース | コントロール |
ルート | 責任を引き受ける | 宛先 | データベース | コントロール |
ルート | ビューの定義 | VW | データベース | ビューの定義 |
スキーマ | 変える | アル | データベース | 任意のスキーマを変更する |
スキーマ | コントロール | CL(塩素) | データベース | コントロール |
スキーマ | シーケンスを作成する (CREATE SEQUENCE) | CRSO | データベース | コントロール |
スキーマ | 削除 | DL | データベース | 削除 |
スキーマ | 実行せよ | 旧 | データベース | 実行せよ |
スキーマ | 挿入する | で | データベース | 挿入する |
スキーマ | 参考文献 | RF | データベース | 参考文献 |
スキーマ | 選択 | SL | データベース | 選択 |
スキーマ | 責任を引き受ける | 宛先 | データベース | コントロール |
スキーマ | マスク解除します。 | UMSK | データベース | マスク解除します。 |
スキーマ | 更新 | 上 | データベース | 更新 |
スキーマ | 変更の追跡を表示する | VWCT | データベース | 変更の追跡を表示する |
スキーマ | ビューの定義 | VW | データベース | ビューの定義 |
物件リストを検索 | 変える | アル | サーバー | 任意のフルテキストカタログを変更 |
物件リストを検索 | コントロール | CL(塩素) | サーバー | コントロール |
物件リストを検索 | 参考文献 | RF | サーバー | 参考文献 |
物件リストを検索 | 責任を引き受ける | 宛先 | サーバー | コントロール |
物件リストを検索 | ビューの定義 | VW | サーバー | ビューの定義 |
サーバー | 一括操作の管理 | ADBO | 適用なし | 適用なし |
サーバー | すべての可用性グループを変更 | ALAG | 適用なし | 適用なし |
サーバー | 任意の接続を変更する | ALCO | 適用なし | 適用なし |
サーバー | 任意の資格情報を変更する | ALCD | 適用なし | 適用なし |
サーバー | 任意のデータベースを変更する | ALDB | 適用なし | 適用なし |
サーバー | 任意のエンドポイントを変更する | ALHE | 適用なし | 適用なし |
サーバー | ALTER ANY EVENT NOTIFICATION | エール | 適用なし | 適用なし |
サーバー | 任意のイベントセッションを変更する | AAES | 適用なし | 適用なし |
サーバー | ALTER ANY EVENT SESSION ADD EVENT | LSAE | 適用なし | 適用なし |
サーバー | ALTER ANY EVENT SESSION ADD TARGET | LSAT | 適用なし | 適用なし |
サーバー | ALTER ANY EVENT SESSION DISABLE | データ暗号化標準 (DES) | 適用なし | 適用なし |
サーバー | ALTER ANY EVENT SESSION DROP EVENT | LSDE | 適用なし | 適用なし |
サーバー | ALTER ANY EVENT SESSION DROP TARGET | LSDT | 適用なし | 適用なし |
サーバー | ALTER ANY EVENT SESSION ENABLE | EES | 適用なし | 適用なし |
サーバー | ALTER ANY EVENT SESSION OPTION | LESO | 適用なし | 適用なし |
サーバー | 任意のリンク サーバーを変更する | オールズ | 適用なし | 適用なし |
サーバー | 任意のログインを変更する | ALLG | 適用なし | 適用なし |
サーバー | サーバー監査の変更許可 | ALAA | 適用なし | 適用なし |
サーバー | 任意のサーバー ロールを変更する | ALSR | 適用なし | 適用なし |
サーバー | リソースを変更する | ALRS | 適用なし | 適用なし |
サーバー | サーバーの状態を変更 | ALSS | 適用なし | 適用なし |
サーバー | 設定を変更する | ALST | 適用なし | 適用なし |
サーバー | ALTER TRACE | ALTR | 適用なし | 適用なし |
サーバー | サーバーの認証 | 認証 | 適用なし | 適用なし |
サーバー | 任意のデータベースを接続する | CADB | 適用なし | 適用なし |
サーバー | CONNECT SQL | COSQ | 適用なし | 適用なし |
サーバー | CONTROL SERVER | CL(塩素) | 適用なし | 適用なし |
サーバー | 任意のデータベースを作成する | CRDB | 適用なし | 適用なし |
サーバー | 可用性グループの作成 | CRAC | 適用なし | 適用なし |
サーバー | CREATE DDL イベント通知 | CRDE | 適用なし | 適用なし |
サーバー | エンドポイントを作成 | CRHE | 適用なし | 適用なし |
サーバー | CREATE SERVER ROLE(サーバーロールを作成) | CRSR | 適用なし | 適用なし |
サーバー | トレース イベント通知の作成 | CRTE | 適用なし | 適用なし |
サーバー | 外部アクセスアセンブリ | XA | 適用なし | 適用なし |
サーバー | 任意のログインを偽装する | IAL | 適用なし | 適用なし |
サーバー | すべてのユーザー セキュリティ保護可能なリソースを選択する | SUS | 適用なし | 適用なし |
サーバー | シャットダウン | SHDN | 適用なし | 適用なし |
サーバー | 危険な組み立て | 徐 | 適用なし | 適用なし |
サーバー | 任意のデータベースを表示 | VWDB | 適用なし | 適用なし |
サーバー | 任意の定義を表示 | VWAD | 適用なし | 適用なし |
サーバー | サーバー状態を表示 | VWSS | 適用なし | 適用なし |
サーバーロール | 変える | アル | サーバー | 任意のサーバー ロールを変更する |
サーバーロール | コントロール | CL(塩素) | サーバー | CONTROL SERVER |
サーバーロール | 責任を引き受ける | 宛先 | サーバー | CONTROL SERVER |
サーバーロール | ビューの定義 | VW | サーバー | 任意の定義を表示 |
サービス | 変える | アル | データベース | 任意のサービスを変更する |
サービス | コントロール | CL(塩素) | データベース | コントロール |
サービス | 送信 | SN | データベース | コントロール |
サービス | 責任を引き受ける | 宛先 | データベース | コントロール |
サービス | ビューの定義 | VW | データベース | ビューの定義 |
対称キー | 変える | アル | データベース | 対称鍵の変更可能 |
対称キー | コントロール | CL(塩素) | データベース | コントロール |
対称キー | 参考文献 | RF | データベース | 参考文献 |
対称キー | 責任を引き受ける | 宛先 | データベース | コントロール |
対称キー | ビューの定義 | VW | データベース | ビューの定義 |
タイプ | コントロール | CL(塩素) | スキーマ | コントロール |
タイプ | 実行せよ | 旧 | スキーマ | 実行せよ |
タイプ | 参考文献 | RF | スキーマ | 参考文献 |
タイプ | 責任を引き受ける | 宛先 | スキーマ | コントロール |
タイプ | ビューの定義 | VW | スキーマ | ビューの定義 |
User | 変える | アル | データベース | 任意のユーザーを変更する |
User | コントロール | CL(塩素) | データベース | コントロール |
User | 偽装 | IM | データベース | コントロール |
User | ビューの定義 | VW | データベース | ビューの定義 |
XML スキーマ コレクション | 変える | アル | スキーマ | 変える |
XML スキーマ コレクション | コントロール | CL(塩素) | スキーマ | コントロール |
XML スキーマ コレクション | 実行せよ | 旧 | スキーマ | 実行せよ |
XML スキーマ コレクション | 参考文献 | RF | スキーマ | 参考文献 |
XML スキーマ コレクション | 責任を引き受ける | 宛先 | スキーマ | コントロール |
XML スキーマ コレクション | ビューの定義 | VW | スキーマ | ビューの定義 |
SQL Server 2022 に追加された新しい詳細なアクセス許可
SQL Server 2022 には、次のアクセス許可が追加されます。
システム メタデータへのアクセスを許可する 10 個の新しいアクセス許可が追加されました。
拡張イベントに対して 18 個の新しいアクセス許可が追加されました。
セキュリティ関連のオブジェクトに関して、9 つの新しいアクセス許可が追加されました。
レジャーに対して 4 つのアクセス許可が追加されました。
3 つの追加データベース権限。
詳細については、「PoLP 準拠を向上させるための SQL Server 2022 と Azure SQL の新しい詳細アクセス許可」を参照してください。
システム メタデータのアクセス許可へのアクセス
サーバー レベル:
- セキュリティ定義を表示する
- パフォーマンス定義を表示する
- サーバーのセキュリティ状態の表示
- サーバーのパフォーマンス状態の表示
- 暗号化で保護された定義を表示する
データベース レベル:
- データベースのセキュリティ状態の表示
- データベースのパフォーマンス状態の表示
- セキュリティ定義の表示
- パフォーマンス定義の表示
- 暗号化されたセキュリティで保護された定義を表示する
拡張イベント のアクセス許可
サーバー レベル:
- 任意のイベント セッションを作成する
- 任意のイベント セッションを削除する
- ALTER ANY EVENT SESSION OPTION
- ALTER ANY EVENT SESSION ADD EVENT
- ALTER ANY EVENT SESSION DROP EVENT
- ALTER ANY EVENT SESSION ENABLE
- ALTER ANY EVENT SESSION DISABLE
- ALTER ANY EVENT SESSION ADD TARGET
- ALTER ANY EVENT SESSION DROP TARGET
これらのアクセス許可はすべて、同じ親アクセス許可 ALTER ANY EVENT SESSION の下に存在します。
データベース レベル:
- 任意のデータベース イベント セッションを作成する
- データベース イベント セッションを削除する
- ALTER ANY DATABASE EVENT SESSION OPTION
- ALTER ANY DATABASE EVENT SESSION ADD EVENT
- ALTER ANY DATABASE EVENT SESSION DROP EVENT
- ALTER ANY DATABASE EVENT SESSION ENABLE
- ALTER ANY DATABASE EVENT SESSION DISABLE
- ALTER ANY DATABASE EVENT SESSION ADD TARGET
- ALTER ANY DATABASE EVENT SESSION DROP TARGET
これらすべてのアクセス許可は、同じ親アクセス許可 ALTER ANY DATABASE EVENT SESSION の下に存在します。
セキュリティ関連のオブジェクトのアクセス許可
- CONTROL (CREDENTIAL)
- ログインの作成
- ユーザーを作成する
- REFERENCES (CREDENTIAL)
- UNMASK (OBJECT)
- UNMASK (SCHEMA)
- エラー ログを表示する
- サーバー セキュリティ監査の表示
- データベース セキュリティ監査の表示
台帳のアクセス許可
- ALTER LEDGER
- ALTER LEDGER の構成
- 台帳を有効にする
- 台帳のコンテンツを表示する
他のデータベース ユーザー権限
- ALTER ANY EXTERNAL JOB
- ALTER ANY EXTERNAL STREAM
- 外部エンドポイントを実行する
権限チェック アルゴリズムの概要
権限のチェックは複雑な場合があります。 権限チェック アルゴリズムには、グループ メンバーシップの重複、所有権の継承、明示的および暗黙的な権限が含まれます。また、セキュリティ保護可能なエンティティを含むセキュリティ保護可能なクラスに対する権限の影響を受けることもあります。 アルゴリズムの一般的な手順では、関連する権限がすべて収集されます。 ブロックする DENY が見つからない場合、十分なアクセス権を付与する GRANT が検索されます。 アルゴリズムには、不可欠な要素が 3 つあります。 セキュリティ コンテキスト、 権限領域、および 必要な権限です。
注
sa、dbo、エンティティ所有者、information_schema、sys、または自分自身に対する権限を許可、拒否、または取り消すことはできません。
セキュリティ コンテキスト
これは、アクセス チェックに対して権限を与えるプリンシパルのグループです。 EXECUTE AS ステートメントを使用してセキュリティ コンテキストが別のログインまたはユーザーに変更されていない限り、現在のログインまたはユーザーに関連した権限です。 セキュリティ コンテキストには次のプリンシパルが含まれます。
ログイン
ユーザー
ロールのメンバーシップ
Windows グループのメンバーシップ
モジュール署名が使用されている場合、ユーザーが現在実行しているモジュールの署名に使用された証明書のログインまたはユーザー アカウント、およびそのプリンシパルに関連付けられたロールのメンバーシップ
権限領域
これは、セキュリティ保護可能なエンティティと、それを含むすべてのセキュリティ保護可能なクラスです。 たとえば、あるテーブル (セキュリティ保護可能なエンティティ) が、セキュリティ保護可能なクラスであるスキーマとデータベースに含まれているとします。 この場合のアクセスは、テーブル、スキーマ、データベース、サーバーの各レベルの権限による影響を受けます。 詳細については、「権限の階層 (データベース エンジン)」を参照してください。
必要な権限
必要とされる権限の種類です。 INSERT、UPDATE、DELETE、SELECT、EXECUTE、ALTER、CONTROL などがあります。
次の例のように、アクセスに複数の権限が必要な場合もあります。
ストアド プロシージャでは、ストアド プロシージャ自体に対する EXECUTE 権限に加えて、ストアド プロシージャによって参照されている複数のテーブルに対する INSERT 権限が必要な場合があります。
動的管理ビューでは、ビューに対する VIEW SERVER STATE 権限と SELECT 権限の両方が必要な場合があります。
アルゴリズムの一般的な手順
セキュリティ保護可能なリソースに対するアクセスを許可するかどうかを判断するためにアルゴリズムが実際に使用する手順は、関連するプリンシパルとセキュリティ保護可能なリソースによって異なる場合があります。 ただし、アルゴリズムは一般に次の手順を実行します。
ログインが sysadmin 固定サーバー ロールのメンバーであるか、ユーザーが現在のデータベースの dbo ユーザーである場合は、権限チェックを行いません。
所有権の継承が適用され、その継承内でオブジェクトに対するアクセス チェックが以前にセキュリティ チェックに合格している場合は、アクセスを許可します。
呼び出し元に関連付けられたサーバーレベル、データベースレベル、署名付きモジュールの各 ID を集計して、 セキュリティ コンテキストを作成します。
その セキュリティ コンテキスト用に、 権限領域に対して許可または拒否された権限をすべて収集します。 権限は、GRANT、GRANT WITH GRANT、または DENY として明示的に指定される場合と、暗黙権限または包含権限の GRANT または DENY である場合があります。 たとえば、スキーマに対する CONTROL 権限を使用した場合、テーブルに対する CONTROL 権限も暗黙的に適用されます。 また、テーブルに対して CONTROL 権限を使用した場合、SELECT 権限も暗黙的に適用されます。 したがって、スキーマに対する CONTROL 権限が許可された場合、テーブルに対する SELECT 権限も許可されます。 テーブルに対する CONTROL 権限が拒否された場合、テーブルに対する SELECT 権限も拒否されます。
注
列レベルの権限の GRANT により、オブジェクト レベルの DENY がオーバーライドされます。 詳細については、「 DENY オブジェクトのアクセス許可」を参照してください。
必要な権限を識別します。
権限領域 内のオブジェクトについて、 必要な権限 が、 セキュリティ コンテキストの任意の ID に対し直接または暗黙的に拒否されている場合は、権限チェックが不合格となります。
権限スペース内のすべてのオブジェクトについて、必要な権限が、セキュリティ コンテキストのいずれの ID に対しても拒否されておらず、必要な権限に直接または暗黙的に GRANT 権限または GRANT WITH GRANT 権限が付与されている場合は、権限チェックはパスとなります。
列レベルのアクセス許可に関する特別な考慮事項
列レベルの権限は構文 <table_name>(<column _name>) で許可されます。 次に例を示します。
GRANT SELECT ON OBJECT::Customer(CustomerName) TO UserJoe;
テーブルの DENY は、列の GRANT によりオーバーライドされます。 ただし、その後にテーブルの DENY があると、列の GRANT は削除されます。
例
このセクションでは、権限に関する情報を取得する例を示します。
A。 許可できる権限の完全な一覧を返す
次のステートメントでは、fn_builtin_permissions
関数によって、すべてのデータベース エンジンの権限が返されます。 詳細については、「sys.fn_builtin_permissions (Transact-SQL)」を参照してください。
SELECT * FROM fn_builtin_permissions(default);
GO
B. オブジェクトの特定のクラスに対する権限を返す
次の例では、 fn_builtin_permissions
を使用してセキュリティ保護可能なカテゴリに使用できるすべての権限を表示します。 この例では、アセンブリに対する権限を返します。
SELECT * FROM fn_builtin_permissions('assembly');
GO
C: オブジェクトに対する実行中のプリンシパルに許可された権限を返す
次の例では、 fn_my_permissions
を使用して、指定したセキュリティ保護可能なリソースについて、呼び出し元のプリンシパルが保持している有効な権限の一覧を返します。 この例では、Orders55
という名前のオブジェクトに対する権限を返します。 詳細については、「sys.fn_my_permissions (Transact-SQL)」を参照してください。
SELECT * FROM fn_my_permissions('Orders55', 'object');
GO
D. 指定したオブジェクトに適用できる権限を返す
次の例は、 Yttrium
と呼ばれるオブジェクトに適用できる権限を返します。 組み込み関数 OBJECT_ID
を使用して、オブジェクト Yttrium
の ID を取得します。
SELECT * FROM sys.database_permissions
WHERE major_id = OBJECT_ID('Yttrium');
GO