新しいデータベース ユーザーを作成しました。アカウントが他のスキーマのテーブルのデータを選択できることがわかりました。では、所有するテーブルのみを操作するように新しいアカウントを制限するにはどうすればよいでしょうか?
1 に答える
できません。場合によっては使用できますREVOKE
が、REVOKEについて覚えておくべき最も重要なことは、明示的にGRANT
編集されたパーミッションのみを取り消すことができるということです。すべてのデータベースには、特定のスキーマに関連付けられておらず、PUBLICに付与されていないGLOBAL権限があります。これらの権限は、それら(権限)が有効である限り、すべてのROLESに継承されます。
PRIVILEGES
などの特定のものを取り消すことができSELECT, DELETE, INSERT
ますが、すべてのスキーマのオブジェクトレベルで取り消す必要があります。つまり、これらのスキーマのいずれかに新しいテーブルが追加された場合、そのユーザーのPRIVILEGES
新しいテーブルがである場合を除き、ユーザーはデフォルトでそのテーブルにアクセスできますREVOKED
。
以下のOracleのドキュメントによると、REVOKEの前提条件です-
前提条件
システム特権を取り消すには、ADMINOPTIONで特権が付与されている必要があります。
ロールを取り消すには、ADMINOPTIONでロールが付与されている必要があります。GRANT ANY ROLEシステム権限を持っている場合は、任意の役割を取り消すことができます。
オブジェクト特権を取り消すには、以前にユーザーとロールにオブジェクト特権を付与しているか、GRANT ANYOBJECTPRIVILEGEシステム特権を持っている必要があります。後者の場合、オブジェクトの所有者によって、または所有者に代わって、つまり、GRANT ANYOBJECTPRIVILEGEを持つユーザーによって付与されたオブジェクト特権を取り消すことができます。ただし、WITHGRANTOPTION付与によって付与されたオブジェクト特権を取り消すことはできません。