次の方法で共有


権限 (データベース エンジン)

すべての SQL Server セキュリティ保護可能なリソースには、プリンシパルに付与できるアクセス許可が関連付けられています。 このトピックでは、次の情報を提供します。

権限の命名規則

次に、アクセス許可の名前付けに従う一般的な慣例について説明します。

  • コントロール

    権限付与対象ユーザーに所有権に似た機能を付与します。 権限付与対象ユーザーは、セキュリティ保護可能なリソースに対して定義されているすべてのアクセス許可を実質的に持ちます。 CONTROL が付与されている主体は、セキュリティオブジェクトへのアクセス許可を付与することもできます。 SQL Server セキュリティ モデルは階層構造であるため、特定のスコープの CONTROL には、そのスコープ内のすべてのセキュリティ保護可能なリソースに対する CONTROL が暗黙的に含まれます。 たとえば、データベースに対する CONTROL は、データベースに対するすべての権限、データベース内のすべてのアセンブリに対するすべての権限、データベース内のすべてのスキーマに対するすべての権限、およびデータベース内のすべてのスキーマ内のオブジェクトに対するすべての権限を意味します。

  • 変更する

    特定のセキュリティ保護対象の所有権を除くプロパティを変更する機能を付与します。 スコープに対して付与されると、ALTER は、そのスコープ内に含まれるセキュリティ保護可能なリソースを変更、作成、または削除する機能も付与します。 たとえば、スキーマに対する ALTER 権限には、スキーマからオブジェクトを作成、変更、および削除する機能が含まれます。

  • ALTER ANY <Server Securable>、Server Securable は任意のサーバーで利用可能なセキュリティ保護対象です。

    サーバー セキュリティ保護可能なサーバーの個々のインスタンスを作成、変更、または削除する機能を付与します。 たとえば、ALTER ANY LOGIN は、インスタンス内のログインを作成、変更、または削除する機能を提供します。

  • ALTER ANY <データベース内の保護可能なオブジェクト>。データベース内の保護可能なオブジェクトは、データベースレベルで任意の保護対象となり得ます。

    データベース保護対象リソースの個々のインスタンスを作成、変更、または削除することを可能にします。 たとえば、ALTER ANY SCHEMA は、データベース内のスキーマを作成、変更、または削除する機能を提供します。

  • 責任を引き受ける

    権限付与対象ユーザーが、付与されているセキュリティ保護可能なリソースの所有権を取得できるようにします。

  • IMPERSONATE <ログイン>

    権限付与対象ユーザーがログインを偽装できるようにします。

  • ユーザーになりすます <ユーザー>

    権限付与することで対象ユーザーが他のユーザーになりすますことが可能になります。

  • CREATE <Server Securable>

    権限付与対象ユーザーに 、サーバー セキュリティ保護可能なリソースを作成する権限を付与します。

  • CREATE <Database Securable>

    権限付与対象ユーザーにデータベース保護可能項目を作成する権限を付与します。

  • CREATE <Schema に含まれるセキュリティ保護可能なリソース>

    スキーマに含まれるセキュリティ対象のリソースを作成する機能を付与します。 ただし、特定のスキーマ内でセキュラブルを作成するには、スキーマに対する ALTER 権限が必要です。

  • ビューの定義

    権限付与対象ユーザーがメタデータにアクセスできるようにします。

  • 参考文献

    テーブルを参照する FOREIGN KEY 制約を作成するには、テーブルに対する REFERENCES 権限が必要です。

    オブジェクトを参照する WITH SCHEMABINDING 句を使用して FUNCTION または VIEW を作成するには、オブジェクトに対する REFERENCES 権限が必要です。

SQL Server のアクセス許可のグラフ

pdf 形式のすべてのデータベース エンジンのアクセス許可のポスター サイズのグラフについては、 https://github.com/microsoft/sql-server-samples/blob/master/samples/features/security/permissions-posters/Microsoft_SQL_Server_2017_and_Azure_SQL_Database_permissions_infographic.pdfを参照してください。

特定のセキュリティ保護可能なリソースに適用されるアクセス許可

次の表に、アクセス許可の主要なクラスと、それらが適用されるセキュリティ保護可能なリソースの種類を示します。

権限 対象
選択する シノニム

テーブルと列

テーブル値関数、Transact-SQL および共通言語ランタイム (CLR)、および列

ビューと列
変更の追跡を表示する

スキーマ
更新 シノニム

テーブルと列

ビューと列

シーケンス オブジェクト
参考文献 スカラー関数と集計関数 (Transact-SQL および CLR)

サービス ブローカー キュー

テーブルと列

テーブル値関数 (Transact-SQL と CLR)、および列

種類

ビューと列

シーケンス オブジェクト
挿入する シノニム

テーブルと列

ビューと列
削除 シノニム

テーブルと列

ビューと列
実行する プロシージャ (Transact-SQL と CLR)

スカラー関数と集計関数 (Transact-SQL および CLR)

シノニム

CLR 型
受け取る Service Broker キュー
ビューの定義 可用性グループ

プロシージャ (Transact-SQL と CLR)

Service Broker キュー

スカラー関数と集計関数 (Transact-SQL および CLR)

ログイン、ユーザー、ロール

シノニム



テーブル値関数 (Transact-SQL および CLR)

見解

シーケンス オブジェクト
変える 可用性グループ

プロシージャ (Transact-SQL と CLR)

スカラー関数と集計関数 (Transact-SQL および CLR)

順序オブジェクト

ログイン、ユーザー、ロール

Service Broker キュー



テーブル値関数 (Transact-SQL および CLR)

見解
責任を持つ 可用性グループ

役割

プロシージャ (Transact-SQL と CLR)

スカラー関数と集計関数 (Transact-SQL および CLR)

サーバーの役割

シノニム



テーブル値関数 (Transact-SQL および CLR)

見解

シーケンスオブジェクト(配列やリストのようなオブジェクト)
コントロール 可用性グループ

プロシージャ (Transact-SQL と CLR)

スカラー関数と集計関数 (Transact-SQL および CLR)

ログイン、ユーザー、ロール

Service Broker キュー

シノニム



テーブル値関数 (Transact-SQL および CLR)

見解

シーケンス オブジェクト
偽装 ログインとユーザー

注意事項

セットアップ時にシステム オブジェクトに付与される既定のアクセス許可は、考えられる脅威に対して慎重に評価されるため、SQL Server インストールの強化の一環として変更する必要はありません。 システム オブジェクトに対するアクセス許可を変更すると、機能が制限または中断され、SQL Server のインストールがサポートされていない状態になる可能性があります。

SQL Server と SQL Database のアクセス許可

次の表に、SQL Server のアクセス許可の完全な一覧を示します。 SQL Database のアクセス許可は、サポートされている基本セキュリティ保護可能なリソースに対してのみ使用できます。 SQL Database ではサーバー レベルのアクセス許可を付与できませんが、代わりにデータベースのアクセス許可を使用できる場合があります。

基本セキュリティ保護可能なリソース セキュリティ保護可能な基本リソースに対する詳細なアクセス許可 アクセス許可の種類コード ベースセキュリティを含むセキュリティ保護が可能なリソース ベースのセキュリティ保護対象に対する詳細なアクセス許可を意味する、コンテナーのセキュリティ保護対象に対するアクセス許可
アプリケーション ロール 変える アル データベース 任意のアプリケーション ロールを変更する
アプリケーション ロール コントロール CL データベース コントロール
アプリケーション 役割 ビューの定義 VW データベース ビューの定義
集会 変える アル データベース 任意のアセンブリを変更
集会 コントロール CL データベース コントロール
議会 参考文献 RF データベース 参考文献
集会 主体的に取り組む 宛先 データベース コントロール
アセンブリ ビューの定義 VW データベース ビューの定義
非対称キー 変更する アル データベース 非対称キーを変更する
非対称キー コントロール CL データベース コントロール
非対称キー 参考文献 RF データベース 参考文献
非対称キー 所有権を取る 宛先 データベース コントロール
非対称キー ビューの定義 VW データベース ビューの定義
可用性グループ 修正する アル サーバー すべての可用性グループを変更
可用性グループ コントロール CL サーバー CONTROL SERVER
可用性グループ 所有権 宛先 サーバー CONTROL SERVER
可用性グループ ビューの定義 VW サーバー 任意の定義を表示
証書 変える アル データベース ALTER ANY CERTIFICATE
証書 コントロール CL データベース コントロール
証書 参考文献 RF データベース 参考文献
証書 責任を引き受ける 宛先 データベース コントロール
証書 ビューの定義 VW データベース ビューの定義
契約 変える アル データベース 任意の契約を変更する
契約 コントロール CL データベース コントロール
契約 参考文献 RF データベース 参考文献
契約 責任を負う 宛先 データベース コントロール
契約 ビューの定義 VW データベース ビューの定義
データベース 変える アル サーバー 任意のデータベースを変更する
データベース 任意のアプリケーション ロールを変更する 鼻翼 サーバー コントロールサーバー
データベース 任意のアセンブリを変更する 残念ながら サーバー 制御サーバー
データベース 非対称鍵を変更する権限を持つ アラク サーバー コントロールサーバー
データベース ALTER ANY CERTIFICATE(任意の証明書を変更) ALCF サーバー コントロールサーバー
データベース あらゆる契約を変更する ALSC サーバー コントロールサーバー
データベース 任意のデータベース監査の変更 アルダ サーバー サーバー監査の変更許可
データベース ALTER ANY DATABASE DDL TRIGGER AltG サーバー コントロールサーバー
データベース 任意のデータベースイベント通知を変更する ALED サーバー ALTER ANY EVENT NOTIFICATION
データベース ALTER ANY DATABASE イベント セッション AADS

注: SQL Database にのみ適用されます。
サーバー 任意のイベントセッションを変更する
データベース 任意のデータスペースを変更する ALDS サーバー 管理サーバー
データベース 任意のフルテキストカタログを変更 ALFT サーバー 制御サーバー
データベース 任意のメッセージ型を変更する ALMT サーバー 制御サーバー
データベース 任意のリモートサービスバインディングを変更する ALSB サーバー コントロールサーバー
データベース あらゆるロールを変更する ALRL サーバー 制御サーバー
データベース 任意のルートを変更 ALRT サーバー 制御サーバー
データベース 任意のスキーマを変更する ALSM サーバー コントロールサーバー
データベース 任意のセキュリティポリシーの変更 ALSP

注: SQL Database にのみ適用されます。
サーバー 制御サーバー
データベース 任意のサービスを変更する ALSV サーバー CONTROL SERVER
データベース 対称鍵の変更可能 ALSK サーバー コントロールサーバー
データベース 任意のユーザーを変更する ALUS サーバー CONTROL SERVER
データベース 認証 認証 サーバー サーバーの認証
データベース データベースをバックアップ BADB サーバー コントロールサーバー
データベース バックアップ ログ BALO サーバー CONTROL SERVER
データベース チェックポイント CP サーバー CONTROL SERVER
データベース 繋ぐ 一酸化炭素 サーバー コントロールサーバー
データベース 接続レプリケーション 株式会社 サーバー 制御サーバー
データベース コントロール CL サーバー コントロールサーバー
データベース 集計関数を作成する 巨岩 サーバー 制御サーバー
データベース CREATE ASSEMBLY CRAS サーバー コントロールサーバー
データベース 非対称キーを作成する CRAK サーバー コントロールサーバー
データベース 証明書の作成 CRCF サーバー 制御サーバー
データベース 契約を作成 CRSC サーバー 制御サーバー
データベース データベースを作成 CRDB サーバー 任意のデータベースを作成する
データベース データベースDDLイベント通知の作成 CRED サーバー CREATE DDL イベント通知
データベース デフォルトを作成する CRDF サーバー 制御サーバー
データベース フルテキスト カタログの作成 CRFT サーバー コントロールサーバー
データベース CREATE 関数 CRFN サーバー 制御サーバー
データベース メッセージの種類を作成する CRMT サーバー 制御サーバー
データベース 手順の作成 CRPR サーバー 制御サーバー
データベース キューを作成 CRQU サーバー CONTROL SERVER
データベース CREATE REMOTE SERVICE BINDING CRSB サーバー CONTROL SERVER
データベース 役割を作成 CRRL サーバー 制御サーバー
データベース ルートを作成 持続的腎代替療法 (CRRT) サーバー コントロールサーバー
データベース ルールを作成 CRRU サーバー 制御サーバー
データベース スキーマを作成 (CREATE SCHEMA) CRSM サーバー コントロールサーバー
データベース CREATE SERVICE CRSV サーバー 制御サーバー
データベース 対称キーの作成 CRSK サーバー 制御サーバー
データベース シノニムの作成 CRSN サーバー コントロールサーバー
データベース テーブルを作成 CRTB サーバー 制御サーバー
データベース 種類の作成 CRTY サーバー CONTROL SERVER
データベース ビューの作成 CRVW サーバー コントロールサーバー
データベース XML スキーマ コレクションの作成 CRXS サーバー 制御サーバー
データベース 削除 DL サーバー CONTROL SERVER
データベース 実行する サーバー CONTROL SERVER
データベース 挿入する サーバー コントロールサーバー
データベース データベース接続の終了 KIDC

注: SQL Database にのみ適用されます。 SQL Server で ALTER ANY CONNECTION を使用します。
サーバー 任意の接続を変更する
データベース 参考文献 RF サーバー CONTROL SERVER
データベース 選択する SL サーバー コントロール サーバー
データベース ショープラン SPLN サーバー ALTER TRACE
データベース クエリ通知をサブスクライブする SUQN サーバー CONTROL SERVER
データベース 所有権 サーバー 制御サーバー
データベース 更新 サーバー 制御サーバー
データベース データベース状態の表示 VWDS サーバー サーバー状態を表示
データベース ビューの定義 VW サーバー 任意の定義を表示
エンドポイント 変更する アル サーバー 任意のエンドポイントを変更する
エンドポイント 繋ぐ 一酸化炭素 サーバー 管理サーバー
エンドポイント コントロール CL サーバー 制御サーバー
エンドポイント 所有権を取得する 宛先 サーバー 制御サーバー
エンドポイント ビューの定義 VW サーバー 任意の定義を表示
全文カタログ 変更する アル データベース 任意の全文カタログを変更する
全文カタログ コントロール CL データベース コントロール
全文カタログ 参考文献 RF データベース 参考文献
全文カタログ 責任を持つ 宛先 データベース コントロール
全文カタログ ビューの定義 VW データベース ビューの定義
全文検索除外リスト 変更する アル データベース すべてのフルテキストカタログを変更する権限
フルテキスト停止リスト コントロール CL データベース コントロール
全文検索ストップリスト 参考文献 RF データベース 参考文献
フルテキスト ストップリスト 責任を持つ 宛先 データベース コントロール
全文検索ストップリスト ビューの定義 VW データベース ビューの定義
ログイン 変更する アル サーバー 任意のログインを変更する
ログイン コントロール CL サーバー 制御サーバー
ログイン 偽装 IM サーバー コントロールサーバー
ログイン ビューの定義 VW サーバー 任意の定義を表示
メッセージの種類 修正する アル データベース 任意のメッセージ型を変更する
メッセージの種類 コントロール CL データベース コントロール
メッセージの種類 参考文献 RF データベース 参考文献
メッセージの種類 所有権を取得する 送り先 データベース コントロール
メッセージの種類 ビューの定義 VW データベース ビューの定義
オブジェクト 修正する アル スキーマ 変更する
オブジェクト コントロール CL スキーマ コントロール
オブジェクト 削除 ダウンロード スキーマ 削除
オブジェクト 実行する エックス スキーマ 実行する
オブジェクト 挿入する スキーマ 挿入する
オブジェクト 受信する RC スキーマ コントロール
オブジェクト 参考文献 RF スキーマ 参考文献
オブジェクト 選択 SL スキーマ 選ぶ
オブジェクト 所有権 宛先 スキーマ コントロール
オブジェクト 更新 スキーマ 更新
オブジェクト 変更の追跡を表示する VWCT スキーマ 変更の追跡を表示する
オブジェクト ビューの定義 VW スキーマ ビューの定義
リモート サービス バインド 変える アル データベース ALTER ANY REMOTE SERVICE BINDING
リモートサービス接続 コントロール CL データベース コントロール
リモートサービスの結合 責任を持つ 〜へ データベース コントロール
リモート サービス バインド ビューの定義 VW データベース ビューの定義
役割 変える アル データベース 任意のロールを変更する
役割 コントロール CL データベース コントロール
役割 所有権 宛先 データベース コントロール
役割 ビューの定義 VW データベース ビューの定義
ルート 変える アル データベース 任意のルートを変更する
ルート コントロール CL データベース コントロール
ルート 所有権 宛先 データベース コントロール
ルート ビューの定義 VW データベース ビューの定義
物件リストを検索 変える アル サーバー ALTER ANY FULLTEXT CATALOG
物件リストを検索 コントロール CL サーバー コントロール
物件リストを検索 参考文献 RF サーバー 参考文献
物件リストを検索 所有権を取得する 宛先 サーバー コントロール
物件リストを検索 ビューの定義 VW サーバー ビューの定義
スキーマ 変える アル データベース ALTER ANY SCHEMA
スキーマ コントロール CL データベース コントロール
スキーマ シーケンスを作成する (CREATE SEQUENCE) CRSO データベース コントロール
スキーマ 削除 DL データベース 削除
スキーマ 実行する エクス データベース 実行する
スキーマ 挿入する データベース 挿入する
スキーマ 参考文献 RF データベース 参考文献
スキーマ 選択 SL データベース 選ぶ
スキーマ 所有権 宛先 データベース コントロール
スキーマ 更新 データベース 更新
スキーマ 変更の追跡を表示する VWCT データベース 変更の追跡を表示する
スキーマ ビューの定義 VW データベース ビューの定義
サーバー 一括操作の管理 ADBO 適用なし 適用なし
サーバー ALTER ANY CONNECTION ALCO 適用なし 適用なし
サーバー 任意の資格情報を変更する ALCD 適用なし 適用なし
サーバー 任意のデータベースを変更する ALDB 適用なし 適用なし
サーバー 任意のエンドポイントを変更 ALHE 適用なし 適用なし
サーバー 任意のイベント通知を変更 エール 適用なし 適用なし
サーバー ALTER ANY EVENT SESSION AAES 適用なし 適用なし
サーバー 任意のリンク サーバーを変更する オールズ 適用なし 適用なし
サーバー ログインを変更する権限を持つ ALLG 適用なし 適用なし
サーバー いずれかのサーバー監査を変更する ALAA 適用なし 適用なし
サーバー 任意のサーバー ロールを変更する ALSR 適用なし 適用なし
サーバー 可用性グループの変更 ALAG 適用なし 適用なし
サーバー リソースを変更する ALRS 適用なし 適用なし
サーバー サーバーの状態を変更 ALSS 適用なし 適用なし
サーバー 設定を変更する ALST 適用なし 適用なし
サーバー ALTER TRACE ALTR 適用なし 適用なし
サーバー サーバーの認証 認証 適用なし 適用なし
サーバー 任意のデータベースを接続する CADB 適用なし 適用なし
サーバー CONNECT SQL COSQ 適用なし 適用なし
サーバー 制御サーバー CL 適用なし 適用なし
サーバー 任意のデータベースを作成する CRDB 適用なし 適用なし
サーバー 可用性グループの作成 CRAC 適用なし 適用なし
サーバー DDL イベント通知を作成 CRDE 適用なし 適用なし
サーバー エンドポイントを作成 CRHE 適用なし 適用なし
サーバー CREATE SERVER ROLE(サーバーロールを作成) CRSR 適用なし 適用なし
サーバー トレース イベント通知の作成 CRTE 適用なし 適用なし
サーバー 外部アクセスアセンブリ XA 適用なし 適用なし
サーバー 任意のログインを偽装する IAL 適用なし 適用なし
サーバー すべてのユーザー セキュリティ保護可能なリソースを選択する SUS 適用なし 適用なし
サーバー シャットダウン SHDN 適用なし 適用なし
サーバー 危険な組み立て 適用なし 適用なし
サーバー 任意のデータベースを表示 VWDB 適用なし 適用なし
サーバー 任意の定義を表示 VWAD 適用なし 適用なし
サーバー サーバー状態を表示 VWSS 適用なし 適用なし
サーバーロール 変える アル サーバー 任意のサーバー ロールを変更
サーバーの役割 コントロール CL サーバー コントロールサーバー
サーバーの役割 引き受ける 宛先 サーバー 制御サーバー
サーバーロール 定義を表示 VW サーバー 任意の定義を表示
サービス 変える アル データベース すべてのサービスを変更する
サービス コントロール CL データベース コントロール
サービス 送信 SN データベース コントロール
サービス 主体的に取り組む 宛先 データベース コントロール
サービス ビューの定義 VW データベース ビューの定義
対称キー 変える アル データベース 任意の対称キーを変更
対称キー コントロール CL データベース コントロール
対称キー 参考文献 RF データベース 参考文献
対称キー 責任を持つ 宛先 データベース コントロール
対称キー ビューの定義 VW データベース ビューの定義
タイプ コントロール CL スキーマ コントロール
タイプ 実行する スキーマ 実行する
タイプ 参考文献 RF スキーマ 参考文献
タイプ 主体性を持つ 宛先 スキーマ コントロール
タイプ ビューの定義 VW スキーマ ビューの定義
利用者 変更する アル データベース 任意のユーザーを変更
利用者 コントロール CL データベース コントロール
利用者 偽装 IM データベース コントロール
利用者 ビューの定義 VW データベース ビューの定義
XML スキーマ コレクション 変える アル スキーマ 変更する
XML スキーマ コレクション コントロール CL スキーマ コントロール
XML スキーマ コレクション 実行する EX スキーマ 実行する
XML スキーマ コレクション 参考文献 RF スキーマ 参考文献
XML スキーマ コレクション 責任を取る 宛先 スキーマ コントロール
XML スキーマ コレクション ビューの定義 VW スキーマ ビューの定義

アクセス許可チェック アルゴリズムの概要

アクセス許可の確認は複雑な場合があります。 アクセス許可チェック アルゴリズムには、重複するグループ メンバーシップと所有権が含まれています。明示的なアクセス許可と暗黙的なアクセス許可の両方が含まれており、セキュリティ保護可能なエンティティを含むセキュリティ保護可能なクラスに対するアクセス許可の影響を受ける可能性があります。 アルゴリズムの一般的なプロセスは、関連するすべてのアクセス許可を収集することです。 ブロック DENY が見つからない場合、アルゴリズムは十分なアクセスを提供する GRANT を検索します。 このアルゴリズムには、 セキュリティ コンテキストアクセス許可領域および必要なアクセス許可の 3 つの重要な要素が含まれています。

sa、dbo、エンティティ所有者、information_schema、sys、または自分自身に対するアクセス許可を付与、拒否、または取り消すことはできません。

  • セキュリティ コンテキスト

    これは、アクセスチェックにアクセス許可を提供するプリンシパルのグループです。 セキュリティ コンテキストが EXECUTE AS ステートメントを使用して別のログインまたはユーザーに変更されていない限り、現在のログインまたはユーザーに関連するアクセス許可です。 セキュリティ コンテキストには、次のプリンシパルが含まれています。

    • ログイン

    • ユーザー

    • ロール メンバーシップ

    • Windows グループ メンバーシップ

    • モジュール署名が使用されている場合は、ユーザーが現在実行しているモジュールの署名に使用される証明書のログインまたはユーザー アカウントと、そのプリンシパルの関連付けられているロール メンバーシップ。

  • アクセス許可領域

    これは、セキュリティ保護対象のエンティティと、セキュリティ保護対象を含むセキュリティ保護対象のクラスです。 たとえば、テーブル (セキュリティ保護可能なエンティティ) は、スキーマのセキュリティ保護可能なクラスとデータベースのセキュリティ保護可能なクラスに含まれます。 アクセスは、テーブル、スキーマ、データベース、およびサーバー レベルのアクセス許可の影響を受ける可能性があります。 詳細については、「 権限階層 (データベース エンジン)」を参照してください。

  • 必要なアクセス許可

    必要なアクセス許可の種類。 たとえば、INSERT、UPDATE、DELETE、SELECT、EXECUTE、ALTER、CONTROL などです。

    次の例のように、アクセスには複数のアクセス許可が必要な場合があります。

    • ストアド プロシージャには、ストアド プロシージャに対する EXECUTE 権限と、ストアド プロシージャによって参照される複数のテーブルに対する INSERT 権限の両方が必要な場合があります。

    • 動的管理ビューには、ビューに対する VIEW SERVER STATE 権限と SELECT 権限の両方が必要な場合があります。

アルゴリズムの一般的な手順

アルゴリズムがセキュリティ保護可能なリソースへのアクセスを許可するかどうかを決定する場合、使用する正確な手順は、関係するプリンシパルとセキュリティ保護可能なリソースによって異なる場合があります。 ただし、アルゴリズムは次の一般的な手順を実行します。

  1. ログインが sysadmin 固定サーバー ロールのメンバーであるか、またはユーザーが現在のデータベースの dbo ユーザーである場合は、アクセス許可チェックをバイパスします。

  2. 所有権チェーンが適用され、チェーンの前のオブジェクトに対するアクセス チェックがセキュリティ チェックに合格した場合は、アクセスを許可します。

  3. セキュリティ コンテキストを作成するために、呼び出し元に関連付けられているサーバー レベル、データベース レベル、および署名付きモジュールの ID を集計します。

  4. その セキュリティ コンテキストでは、アクセス許可領域に対して許可または拒否されたすべての アクセス許可を収集します。 アクセス許可は、GRANT、GRANT WITH GRANT、または DENY として明示的に指定することができます。または、アクセス許可が暗黙的な GRANT または DENY、もしくはそれを包括するアクセス許可である可能性があります。 たとえば、スキーマに対する CONTROL 権限は、テーブルに対する CONTROL を意味します。 また、テーブルの CONTROL は SELECT を意味します。 そのため、スキーマに対する CONTROL が付与されている場合は、テーブルの SELECT が付与されます。 テーブルで CONTROL が拒否された場合、テーブルの SELECT は拒否されます。

    列レベルの権限の GRANT は、オブジェクト レベルで DENY をオーバーライドします。

  5. 必要なアクセス許可を特定します。

  6. 必要なアクセス許可が、アクセス許可空間内のオブジェクトのセキュリティ コンテキスト内のいずれかの ID に対して直接または暗黙的に拒否された場合は、アクセス許可チェックを失敗します。

  7. 必要なアクセス許可が拒否されておらず、必要なアクセス許可に GRANT または GRANT WITH GRANT アクセス許可が直接または暗黙的に含まれている場合は、アクセス許可チェックに合格します。権限空間内の任意のオブジェクトのセキュリティ コンテキスト内の任意の ID に直接または暗黙的にアクセス許可を付与します。

例示

このセクションの例では、アクセス許可情報を取得する方法を示します。

ある。 許可可能なアクセス許可の完全な一覧を返す

次のステートメントは、 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  

こちらもご覧ください

権限の階層 (データベース エンジン)
sys.database_permissions (Transact-SQL)