作業上の理由により、Oracleはより多くのデータベースを使用し、権限設定部分もより頻繁に使用されます。今日は、主にバックアップデータ、つまりエクスポートデータを例として取り上げます。権限の問題について簡単に説明し、段階的な要約も示します。
1.許可の分類
権限は特定の特性に従って分類され、システム権限とエンティティ権限に分けられます。
システム権限とは、ユーザーに対して権限管理操作を実行することを意味し、エンティティ権限とは、テーブルやビューなどのエンティティに対して権限管理操作を実行することを指します。
次に、システム権限の分類について
システム権限は、最高の権限を持つDBAと通常のユーザーの2つのタイプに分けられます。DBAはインストールプロセス中に指定されます。通常はsysユーザーです。もちろん、sysユーザーを介してユーザーをDBAとして承認することもできます。承認方法は次のとおりです。次のとおりです。
grant dba to kqportal;
もちろん、dbaを指定すると多くの権限が確実に付与されますが、特別な管理タスクがない限り、これを行わないことを強くお勧めします。承認を取り消す方法は次のとおりです。
revoke dba from kqportal;
注:許可は、同じ方法で付与または取り消すことができます。
3.エンティティ権限の分類
エンティティ権限の分類は、ユーザーのテーブルまたはビューおよびその他のエンティティを取得または操作することです。デフォルトでは、新しく作成されたユーザーにいくつかの権限があります。さらに権限が必要な場合は、次のように実行できます。
grant connect,resource,create session,create table,create view,create sequence to kqportal;
4、データバックアップ
昨日、データベースが不可解に空になったため、システムが一時的に停止しました。幸い、データベーススナップショットは破棄されず、データが取得されました。ここでは、一般的に、データが空になった後、ddl操作は実行されません。 。その時点までのデータを復元します。
以上のことから、自動データバックアップ作業を完了するためのスクリプトを作成しました。スクリプトは後で追加され、最適化はまだ行われています。
一般的に使用されるエクスポートステートメントは、次のようにスクリプトに記述されます。
exp kqportal/123456@ORCL file=D:\ksk\OrclDBackup\backupdbdir\kqportal_orcl_%BACKUPDATE%.dmp full=y
また、full = yの文が追加されたことにも注意してください。このパラメーターは、システム表および他の表スペースの表を含むすべての表をエクスポートすることを意味します。
このようにすべてのテーブルをエクスポートする必要がある場合は、上記の文では不十分であり、エクスポートするには承認が必要であると報告されます。次のステートメントを使用して許可できます。
--需要以dba权限用户登录,进行EXP_FULL_DATABASE角色的授权
grant EXP_FULL_DATABASE to kqportal;
上記のステートメントを使用すると、通常のユーザーの下ですべてのテーブルとデータをエクスポートするという目的を達成できます。(もちろん、EXP_FULL_DATABASEロールがある場合は、IMP_FULL_DATABASEロールがあります。後で説明しますが、ほとんど同じです)
ただし、以下では、上記のステートメントを実行した後に発生する問題と、これらの問題を解決する方法について説明します。
上記のステートメントを使用すると、すべての表とデータをエクスポートできますが、データベースに複数の表スペースがあり、表スペースに同じ表名の表がある場合、プログラムは実行されません。実際の測定。エラーが報告されます名前空間で複数のテーブルが見つかりました。
最終的な解決策は、次のステートメントを実行することです。
revoke SELECT ANY TABLE from exp_full_database;
説明:EXP_FULL_DATABASEに は、 SELECT ANY TABLEパーミッションを含む8つのパーミッションが含まれています。このパーミッションにより、kqportalユーザーは任意のテーブルのmemaユーザーをexpできます。
そこで、EXP_FULL_DATABASEからSELECT ANY TABLE権限を取り消そうとし、問題を解決しました。
これが私が今考えている唯一の方法であり、現在のテストでは他の問題はありません。他の副作用がある場合は、後で追加します。