REVOKE

REVOKE文は、ユーザーから1つ以上の権限を削除します。

必要な権限

システム権限を削除するには、ADMINが必要です。

オブジェクト権限を削除するには、ADMINが必要であるか、またはオブジェクト所有者である必要があります。

TimesTen Scaleoutでの使用

この文は、TimesTen Scaleoutでサポートされています。

SQL構文

REVOKE {SystemPrivilege [,...] | ALL [PRIVILEGES]} FROM {User |PUBLIC} [,...]

または

REVOKE {{ObjectPrivilege [,...] | ALL [PRIVILEGES]} ON {[Owner.Object}} [,...]
FROM {user | PUBLIC}[,...]

パラメータ

システム権限を削除するためのパラメータは次のとおりです。

パラメータ 説明

SystemPrivilege

削除するシステム権限です。使用できる値のリストについては、「システム権限」を参照してください。

ALL [PRIVILEGES]

ユーザーからすべてのシステム権限を削除します。

User

権限が削除されるユーザーの名前。ユーザー名は、CREATE USER文を使用してTimesTenデータベースに設定しておく必要があります。

PUBLIC

すべてのユーザーの権限を削除することを指定します。

オブジェクト権限を削除するためのパラメータは次のとおりです。

パラメータ 説明

ObjectPrivilege

削除するオブジェクト権限です。使用できる値のリストについては、「オブジェクト権限」を参照してください。

ALL [PRIVILEGES]

ユーザーからすべてのオブジェクト権限を削除します。

User

権限が削除されるユーザーの名前。ユーザー名は、CREATE USER文を使用してTimesTenデータベースに設定しておく必要があります。

[Owner.]Object

Objectは、権限が削除される対象オブジェクトの名前です。Ownerは、オブジェクトの所有者です。Ownerを指定しない場合は、権限を削除しているユーザーが所有者とみなされます。

PUBLIC

すべてのユーザーの権限を削除することを指定します。

説明

  • オブジェクトの所有者から、そのオブジェクトの権限を削除することはできません。

  • 権限を付与できるユーザーは、自分以外のユーザーが付与した場合でもその権限を削除できます。

  • 権限は、付与されたときと同じレベルで削除する必要があります。ユーザーからオブジェクト権限を削除する場合、関連するシステム権限が付与されているユーザーからは削除できません。たとえば、あるユーザーにSELECT ANY TABLEを付与し、その後SELECT ON BOB.TABLE1を削除しようとすると、SELECT ANY TABLEに加えてSELECT ON BOB.TABLE1を明示的に付与していない場合は失敗します。

  • ユーザーにすべてのシステム権限が付与されている場合は、特定の権限を削除できます。たとえば、すべてのシステム権限が付与されているユーザーからALTER ANY TABLEを削除できます。

  • すべてのオブジェクト権限が付与されているユーザーからは、特定のオブジェクトの特定の権限を削除できます。たとえば、ユーザーTERRYにすべてのオブジェクト権限が付与されている場合でも、表CUSTOMERSに対するDELETE権限をTERRYから削除できます。

  • ユーザーにすべての権限が付与されていない場合でも、そのユーザーからすべての権限を削除できます。

  • 特定の権限を、その権限を付与されていないユーザーから削除することはできません。

  • ユーザーが所有するオブジェクトに対する権限は削除できません。

  • システム権限とオブジェクト権限を1つの文で削除することはできません。

  • オブジェクト権限の文に指定できるオブジェクトの数は1つのみです。

  • ディテール表に対するSELECT権限またはSELECT権限を含むシステム権限をuser1が所有するディテール表でuser2から削除すると、user2が所有する関連するマテリアライズド・ビューは無効と指定されます。

  • レプリケーションが構成されている場合、この文はレプリケートされます。

ADMINおよびDDL権限をユーザーterryから削除します。

REVOKE admin, ddl FROM terry;

ADMIN権限を持っている権限削除者が、patが所有するcustomers表に対するUPDATE権限をterryから削除します。

REVOKE update ON pat.customers FROM terry;