ビューBobby.ViewBがビューAllen.ViewAを参照し、Allen.ViewAがAllen.BaseTableを参照すると想定します。Bobbyが次の文を入力すると、システムは、文に続く表内の権限が存在するかどうかを検証します。
GRANT INSERT, DELETE ON Bobby.ViewB TO Chuck;
このプロセスをまとめると、次のようになります。
- Bobbyの、Bobby.ViewBまたは自分自身に対するINSERT WITH GRANT OPTION。
- Bobbyの、Bobby.ViewBまたは自分自身に対するDELETE WITH GRANT OPTION。
取り消されない限り、BobbyはBobby.ViewBに対するこれらの権限を明示的に持っています。これらの権限は、ビューの作成時にBobbyに自動的に付与されています。
Bobbyは、ユーザーBobbyの作成時に明示的に付与されているため、自分自身に対するこれらの権限も持っています。
BobbyはBobby.ViewBを所有しているため、これらの権限を暗黙的にも持っています。
暗黙権限は、取り消すことができません。ただし、他のタイプの権限については、システムが必要な権限を見つけられないことがあります。この場合、システムはGRANT文を実行するユーザーにエラー メッセージを返し、その文は実行されません。
この例の権限は、次のように分類されます。
権限カテゴリ | 個人 | 所有権限 | 対象オブジェクト |
---|---|---|---|
自動 | Bobby | INSERT WITH GRANT OPTION | Bobby.ViewB |
DELETE WITH GRANT OPTION | |||
Allen | INSERT WITH GRANT OPTION | Allen.BaseTable | |
DELETE WITH GRANT OPTION | |||
明示権限 | Bobby | INSERT WITH GRANT OPTION | Allen.ViewA |
DELETE WITH GRANT OPTION |