データベースのユーザー権限を合理化しています。そのために、すべてのユーザーに付与されたスキーマ内のすべてのテーブル(特定の役割ではない)のすべての選択権限を取り消したいと考えています。
いくつかの正規表現を使用して、revoke
次のようなものを与える各テーブルのユニバーサルを作成しようとしました。
TABLE1のselectをUSER1、USER2、USER3...から取り消します。
TABLE2のselectをUSER1、USER2、USER3...から取り消します。
ただし、すべてのユーザーにすべてのテーブルへのアクセス許可が付与されているわけではないため、これによりoracleエラーが発生します。
01927. 00000 - "cannot REVOKE privileges you did not grant"
これは理にかなっていますが、役に立ちません。
また、を使用して、取り消す必要のある許可が含まれるすべてのテーブルのリストを取得しようとしAll_Tab_Privs
ましたが、これは機能しますが、これから実際にアクセス許可を取り消す方法がわかりません。
SELECT * From All_Tab_Privs where grantor = 'GRANTING_USER' and grantee != 'READROLE' and grantee != 'PUBLIC' and grantee != 'SYS';
スプレッドシートで何時間も費やさずにこれを行う方法についての提案はありますか?PL / SQLを推測していますか?ありがとう。