Oracle Databaseには高度な権限管理機能が備わっています。データベースにアクセスするユーザーが多くなればなるほど、この権限の管理が重要になってきます。 今回はデータベースの管理者向けにSI Object Browser for Oracleで権限を確認・編集する方法について紹介していきます。
Oracle Databaseにおける権限の種類
Oracle Databaseには2種類の権限があり、また権限に関連する「ロール」という仕組みがあります。
オブジェクト権限
オブジェクト権限は、テーブル、ビュー、ストアドプロシージャ等特定のオブジェクトに対する操作を許可するための権限です。
「ユーザーAはユーザーBの所有するテーブルxに対し読み取り操作を行える」という指定が可能です。
オブジェクトの所有者は基本的にそのオブジェクトに対する操作を無制限に行えます。そのためオブジェクト権限は、そのオブジェクトの所有者でないユーザー(スキーマ)に対して与えます。
システム権限
システム権限は、オブジェクト権限よりも大局的な権限で、データベースシステムに対する操作を許可する権限です。
代表的なものとして、すべてのテーブルに対して定義変更を許可するALTER ANY TABLEや、削除操作を許可するDELETE ANY TABLEといったシステム権限があります。
システム権限はオブジェクト権限より強い権限で、たとえばALTER ANY TABLE権限を持つユーザーは、オブジェクト権限の有無にかかわらず、他のユーザーが所有するテーブルに対して更新を行えます。
ロール
本記事では詳しく扱いませんが、ロールは「システム権限の組み合わせをパックしたもの」と捉えることができます。
注意したいのは、ロールの設定とシステム権限の設定は独立していることです。ロールを付与する操作と、ロールに含まれるシステム権限を1つずつ付与する操作は異なる操作となります。
次に、こういった権限をSI Object Browserで確認・編集する方法を見ていきます。
ユーザーの権限を確認・編集する
SI Object Browser for Oracleで権限を確認する方法の1つが「ユーザー」画面から確認する方法です。
「ユーザー」画面は「管理(A)」メニューまたはツールバーのボタン (図1) から「ユーザー情報(U)」を選択し、さらに該当のユーザーの行をダブルクリックすることによって開けます。
ユーザー画面での権限の編集にはDBAロールが必要ですのでご注意ください。
図1 ツールバーの「ユーザー情報」ボタン
図2 ユーザー情報画面
「ユーザー情報」画面では、左から順にロール、システム権限、オブジェクト権限が表示されています。このうちロールとシステム権限は、画面上で設定の変更が行えます。
システム権限
図3 システム権限
チェックボックスが各行に2つ設置されており、それぞれ次の意味を持ちます。
・左側のチェックボックス:権限を与える/与えないの指定
・右側のチェックボックス:ADMINオプションの指定
ADMINオプションを設定されたユーザーは、そのシステム権限を他のユーザーに付与できるようになります。 [RELATED_POSTS]
オブジェクト権限
この画面では、すでに設定されているオブジェクト権限の確認および取り消しのみを行えます。オブジェクト権限を付与するときは、以下に示すオブジェクトの「権限」タブをご使用ください。
オブジェクトの権限を確認・編集する
ユーザーごとではなく、オブジェクトごとにだれがどのような権限を持っているか確認したいときは、該当のオブジェクトの「権限」タブから確認します(図4)。
図4 「権限」タブ
ここでの設定方法は過去記事「パパッと権限を付与する方法」で紹介している方法と同様になりますが、画面の見方をおさらいしておきます。
表示対象
画面下部の「ユーザー一覧」に表示する対象を選択します。
選択したユーザーの権限
権限の設定はここで行います。
・左側のチェックボックス:権限を与える/与えないの指定
・右側のチェックボックス:GRANTオプションの指定
GRANTオプションを設定されたユーザーは、そのシステム権限を他のユーザーに付与できるようになります。
ユーザー一覧
それぞれのユーザーがどういった権限を有しているかを一覧で確認できます。
表記の意味は次の通りです。
・「*」:オブジェクト権限を有していること
・「G」:オブジェクト権限を有しており、かつGRANTオプションが設定されていること
いかがだったでしょうか。SI Object Browserを用いると、SQL文でGRANT文を都度指定するよりも高速に権限設定ができますので、ぜひご活用ください。
- カテゴリ:
- キーワード: