Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL リファレンス » SQL の使用 » SQL 文 » SQL 文 (P ~ Z)

 

REVOKE 文

この文は、ユーザのパーミッションを取り消すために使用します。

構文 1
REVOKE permission, ... FROM userid, ...
permission : 
CONNECT 
| DBA 
| BACKUP 
| CREATE ON dbspace
| GROUP 
| INTEGRATED LOGIN
| KERBEROS LOGIN 
| MEMBERSHIP IN GROUP userid, ... 
| PROFILE 
| RESOURCE
| VALIDATE
構文 2
REVOKE table-permission, ...
ON [ owner.]table-name
FROM userid, ...
table-permission : 
ALL [PRIVILEGES] 
| ALTER 
| DELETE 
| INSERT 
| REFERENCES [ ( column-name, ... ) ] 
| SELECT [ ( column-name, ... ) ] 
| UPDATE [ ( column-name, ... ) ]
構文 3
REVOKE EXECUTE
ON [ owner.]procedure-name
FROM userid, ...
備考

REVOKE 文は、GRANT 文を使って付与したパーミッションを削除します。構文 1 は、特殊ユーザ・パーミッションを取り消します。構文 2 は、テーブル・パーミッションを取り消します。構文 3 は、プロシージャの EXECUTE パーミッションを取り消します。

REVOKE CONNECT はデータベースからユーザ ID を削除すると一緒に、そのユーザが所有しているオブジェクト (テーブル、ビュー、プロシージャなど) と、そのユーザによって付与されたパーミッションも破棄します。削除されているユーザが、別のユーザが所有するビューによって参照されるテーブルを所有する場合、そのユーザに対して REVOKE CONNECT を実行することはできません。

REVOKE GROUP は、グループのすべてのメンバから MEMBERSHIP IN GROUP を自動的に取り消します。

グループにユーザを追加すると、ユーザはそのグループに割り当てられたすべてのパーミッションを継承します。SQL Anywhere では、ユーザがグループのメンバとして継承するパーミッションのサブセットを取り消すことはできません。取り消すことができるのは、GRANT 文によって明示的に付与されるパーミッションだけです。異なるユーザに別々のパーミッションを付与する必要がある場合、適切なパーミッションを持つグループを別々に作成するか、必要なパーミッションを各ユーザに明示的に付与することができます。

テーブル、ビュー、プロシージャに対するグループ・パーミッションを付与したり取り消したりすると、グループのメンバ全員がその変更を継承します。DBA、RESOURCE、GROUP の各パーミッションについては継承されません。これらのパーミッションは、必要に応じて各ユーザ ID に割り当てる必要があります。

あるユーザに付与した WITH GRANT OPTION パーミッションを取り消すと、それ以前にそのユーザが他のユーザに付与した WITH GRANT OPTION パーミッションも取り消されます。

パーミッション

取り消されるパーミッションの付与者であるか、DBA 権限が必要です。

接続パーミッションまたは別のユーザからのテーブル・パーミッションを取り消す場合、他のユーザはそのデータベースに接続できません。DBO からの接続パーミッションの取り消しはできません。

ユーティリティ・データベースに接続するときに REVOKE CONNECT FROM DBA を実行すると、以降のユーティリティ・データベースへの接続が無効になります。これは、REVOKE CONNECT を実行する前に確立していた接続を使用するか、データベース・サーバを再起動しないかぎり、以降はユーティリティ・データベースに接続できないことを意味します。

関連する動作

オートコミット。

参照
標準と互換性
  • SQL/2003   構文 1 はベンダ拡張です。構文 2 はコア機能です。構文 3 は永続的ストアド・モジュール機能です。

ユーザ Dave が Employees テーブルを更新できないようにします。

REVOKE UPDATE ON Employees FROM Dave;

ユーザ Jim からリソース・パーミッションを取り消します。

REVOKE RESOURCE FROM Jim;

ユーザ・プロファイル名 Administrator から統合化ログイン・マッピングを取り消します。

REVOKE INTEGRATED LOGIN FROM Administrator;

Finance グループがプロシージャ ShowCustomers を実行できないようにします。

REVOKE EXECUTE ON ShowCustomers FROM Finance;

ユーザ ID FranW をデータベースから削除します。

REVOKE CONNECT FROM FranW;