推奨されます, 2021

エディターズチョイス

付与と取り消しの違い

SQLでは、DCLコマンドはさまざまな権限をユーザーに割り当てるために使用されます。これらの種類の権限は特権と呼ばれます。 許可および取り消しコマンドはDCLコマンドです。 GRANTコマンドはユーザーに承認を与えるために使用されますが、REVOKEコマンドは承認を取り消すために使用されます。 選択、挿入、更新、および削除は、SQL標準に含まれている特権の一部です。

比較表

比較基準付与取り消す
基本付与コマンドは、ユーザーに特権を付与するために使用されます。取り消しコマンドは、ユーザーから特権を奪うために使用されます。
コントロールが分散している場合付与はより簡単です。失効は実行が非常に複雑です。
構文付与

に。
取り消す

から。

交付金の定義

データベース管理者は、データベースのユーザーにアクセス権または特権を付与するためにSQLでGRANTコマンドを定義します。 認証に関与する3つの主要コンポーネントは、ユーザー、特権(操作)、およびデータベースオブジェクトです。 ユーザは、アプリケーションプログラムの実行をトリガする人です。 操作は、アプリケーションプログラムに組み込まれているコンポーネントです。 操作は、リレーションやビュー名などのデータベースオブジェクトに対して実行されます。

GRANTコマンドの構文:

付与

に。

ここで、特権リストには、選択、挿入、更新、削除の操作、またはそれらの組み合わせが含まれます。 コマンドのこれら3つの側面は、続行する前に許可制御によって検査されます。

関係(テーブル)Rの所有者アカウントA1がR上の別のアカウントA2に特権を付与すると、アカウントA2は関係Rにアクセスでき、R上の別のアカウントに特権を付与することが許可されます。A1がA2から特権を取り消す場合R1では、A2が伝播したすべての特権がシステムによって自動的に取り消されます。 したがって、これがテーブルに対する特権の伝播方法です。 したがって、伝播を許可するDBMSは、特権を簡単に取り消すことができるように、付与された特権に従う必要があります。

例として特権の付与を説明しましょう。 テーブルFacultyとDepartment、およびアカウントA1とA2の2つのスキーマがあります。

SELECT、INSERT、FACULTYでの更新、A1、A2 への部署の付与。

上記の例では、アカウントA1とA2は、従業員と部門のテーブルに対して選択、挿入、および更新操作を実行することが許可されています。

取り消しの定義

SQLのREVOKEコマンドは、データベースのユーザーから付与された特権(許可)を奪うように定義されています。 特権を撤回する権限を持つのはデータベース管理者です。

REVOKEコマンドの構文

取り消す

から。

このコマンドは、revokeキーワードと 'from'を除いてgrantコマンドと似ています。 与えられたコマンドでは、特権に含まれる操作は特定のユーザーまたは役割リストに対して取り消されます。 特権があるユーザーから別のユーザーに伝達されると、失効は複雑になります。

同様の例で特権の取り消しを説明しましょう。

挿入を取り消し、ファクトリーに更新、A1、A2からの部門。

上記の例では、A1アカウントとA2アカウントは権利から撤回されており、従業員と部門のテーブルに対して挿入および更新操作を実行することは許可されていません。

付与と取り消しの主な違い

  1. Grantコマンドは特権をユーザーに付与し、Revokeコマンドはユーザーから特権を取り消します。
  2. 集中システムでは、DCLコマンドのGRANTとREVOKEは簡単に実行できます。 コントロールが分散されている場合、クエリはより柔軟ですが複雑になります。 GRANTコマンドは扱いが簡単ですが、REVOKEコマンドの場合は再帰的です。

結論

GRANTコマンドは、データベースオブジェクトに対する特権またはアクセス権をユーザーに付与します。 一方、REVOKEコマンドは、データベースオブジェクトに対するユーザーから権限または特権を削除するために使用されます。

Top