仕事・プライベートともにぎっしりで、ブログ開くことさえできていませんでした(´・ω・`)
プライベートのほうはわりと落ち着いたので、また少しずつ更新していきます!
今回はOracle DBの権限のお話。
Oracle DBの19cを前提に書いていきます。
もくじ
1.権限とは
2.ロールとは
3.権限の種類
権限とは
OracleのDBユーザ毎に、「これやっていいよ」「これはしたらあかんよ」を決めたルールのこと。
「これやっていいよ」「これはしたらあかんよ」は、1つ1つが権限と呼ばれる。
権限には、例えば、「データベースに接続する権限」、「表領域を作成する権限」などがある。
この権限を付与、もしくは付与しないことによって、DBユーザが実行できる処理を制御することができるようになっている。
ロールとは
特にユーザが多くなると、複数のユーザに同じような権限を付与するのが一苦労で、
管理も大変なものとなる。
そういった時に、ユーザ個別に権限を付与するのではなく、「ロール」に対して各権限を付与し、
ユーザにはロールを付与することができる。
イメージ…
ユーザAとユーザBには、共通して付与する権限がある。


ユーザAとユーザBそれぞれに個別の権限を付与することもできるが、
ロールを作って、ロールに権限を付与し、そのロールをユーザAとBに割り当てることが可能となっている。
ロールを1度作ってしまえば、
「表領域を変更する権限を、ユーザAとBに加えたい」という時や
「表領域を作成する権限はなくしたい」という時などに、ロールだけを変更すればよくなる。
また、新たにユーザCを作成し、ユーザA、Bと同じ権限を付与したい時にも、
ロール1つを割り当てればそれで事足りる。
ロールは、権限の集合体みたいなものだと言える。
権限の種類
ロールに(またはユーザに直接)、割り当てることのできる権限は、かなりの数がある。
権限の種類として、代表的な3つを書き出すと、以下となる。
| 種類 | 説明 | 例 |
|---|---|---|
| システム権限 | スキーマ・オブジェクトに対して 1つまたは複数の操作を実行する権限。 「システム」権限という名前の通り、 システム全体に関わる強力な権限も多々存在する。 そのため、権限付与はとくに慎重に行うべきである。 オブジェクト権限で処理を実行するには、 適切なシステム権限が付与されている必要がある。 |
・DBユーザの作成・変更・削除権限 ・表領域の作成・変更・削除権限 ・テーブルの作成・変更・削除権限 ・データベースへの接続権限 |
| オブジェクト権限 | スキーマ・オブジェクト単位で、操作やアクセスを制御。 | ・テーブルへのSELECTやISERTの許可 ・テーブルの定義の変更 |
| 表・ビューへの権限 | 表やビュー単位で、アクセス権限を制御。 | ・××テーブルへのINSERTとUPDATEを許可 ・○○ビューへのSELECTを許可しない |
各権限の違いとしては、
・システム権限:データベース全体の操作に関わるでかい範囲での権限
・オブジェクト権限:必要なシステム権限を持っている前提で、より具体的な内容の権限
・表・ビューへの権限:1つの表やビューという小さな単位で細かく権限を決められる
という感じかと。
大きな単位から小さな単位まで細かく決められるので、
セキュリティに配慮した構成にすることができる。
中身薄いですが(^-^;
今回は以上!




