Oracle管理者のためのSQLリファレンス
■ロールの確認/作成/付与/変更/取り消し/削除
ロールとは権限やほかのロールをひとまとめにした集合体です。権限は非常に数が多く、個別にユーザーに割り当てると管理が大変になるため、ユーザーの役割に応じたロールを作成し、これをユーザーごとに割り当てます。システムによっ事前にて定義されたロールも存在しますが、通常は管理者がセキュリティポリシーに従って作成します。(SQLの表記ルールは、こちらから参照できます)
ロールを確認する | |
SELECT
* FROM user_role_privs; |
|
┗ | ユーザーに与えられているロールを確認するには、USER_ROLE_PRIVSまたはSESSION_ROLESまたはDBA_ROLE_PRIVSに問い合わせます。USER_ROLE_PRIVSではデータベースに接続しているユーザー自身に付与されたロールをすべて確認できるのに対して、SESSION_ROLESでは現在のセッションで有効なロールを確認できます(ロールはセッションごとに有効/無効の切り替え可能)。すべてのユーザーの情報を確認するにはDBA_ROLE_PRIVSに問い合わせますが、このビューにアクセスするにはSELECT ANY TABLE権限が必要です。この権限は、デフォルトでDBAロールに割り当てられます。 |
関連項目:権限の確認/付与/取り消し |
ロールを作成する | |
CREATE
ROLE role |
|
┗ | ロールを作成するには、CREATE文のROLE句でロール名を指定します。NOT IDENTIFIED句を指定すると、パスワードを入力しなくても使用可能になります。IDENTIFIED句に続けてメソッド(BY password、USING package、EXTERNALLY、GLOBALLY)を指定すると、SET ROLE文によってロールを使用可能にする際にメソッドによるユーザー認可が必要になります。NOT IDENTIFIED句およびIDENTIFIED句を省略すると、NOT IDENTIFIEDがデフォルト値になります。 |
関連項目:データベースからロールを削除する |
ロールにシステム権限を付与する | |
GRANT
{system_privilege | ALL PRIVILEGES} |
|
┗ | ロールにシステム権限を付与するには、GRANT文のTO句で付与するロール名を明示し、システム権限名(system_privilege)あるいはALL
PRIVILEGESを指定します。システム権限とロールは複数指定可能です。ALL PRIVILEGESを指定すると、SELECT ANY DICTIONARY権限を除き、すべてのシステム権限を付与できます。 WITH ADMIN OPTION句 WITH ADMIN OPTION句を指定すると、 ・ロールがGLOBALロールでない場合、そのロールをほかのロールに付与可能 ・ロールをほかのロールから取り消すことが可能 ・ロールへのアクセスに必要な認可を変更するため、ロールを変更可能 ・ロールを削除可能 になります。 |
関連項目:権限を確認する ロールにオブジェクト権限を付与する |
ロールにオブジェクト権限を付与する | |
GRANT
{object_privilege | ALL PRIVILEGES} |
|
┗ | ロールにオブジェクト権限を付与するには、GRANT文のTO句で付与するロール名を明示し、ON句で対象となるオブジェクト名(schema.object)あるいはディレクトリ・スキーマ・オブジェクト名、Javaソースおよびリソース・スキーマ・オブジェクト名を指定し、オブジェクト権限名(object_privilege)あるいはALL
PRIVILEGESを指定します。オブジェクト権限とロールは複数指定可能です。権限を付与する表またはビューの列(column)を指定することも可能です(INSERT、REFERENCES、UPDATEの各権限のみ)。列を指定しないと表またはビューのすべての列に権限が付与されます。 WITH HIERARCHY OPTION句 WITH HIERARCHY OPTION句を指定すると、今後作成されるサブオブジェクトも含めてすべてのサブオブジェクトに対して権限を付与できます。 |
関連項目:権限を確認する ロールにシステム権限を付与する |
ロールにロールを付与する | |
GRANT
role [, role …] |
|
┗ | システムに事前定義されたロールまたはユーザーが定義したロールをロールに付与するには、GRANT文に付与するロール名を指定し、TO句に続けて付与先のロール名を指定します。 WITH ADMIN OPTION句 WITH ADMIN OPTION句を指定すると、 ・ロールがGLOBALロールでない場合、そのロールをほかのロールに付与可能 ・ロールをほかのロールから取り消すことが可能 ・ロールへのアクセスに必要な認可を変更するため、ロールを変更可能 ・ロールを削除可能 になります。 |
関連項目:ロールを作成する |
ロールをユーザーに付与する | |
GRANT
role [, role …] |
|
┗ | ロールをユーザーに付与するには、GRANT文で付与するロール名を指定し、TO句で付与するユーザー名を指定します。 IDENTIFIED BY句 IDENTIFIED BY句に続けてパスワードを指定すると、既存ユーザーを明確に識別できます(ユーザーが存在しない場合は新規にユーザーが作成されます)。 WITH ADMIN OPTION句 WITH ADMIN OPTION句を指定すると、 ・ロールがGLOBALロールでない場合、そのロールをほかのロールに付与可能 ・ロールをほかのロールから取り消すことが可能 ・ロールへのアクセスに必要な認可を変更するため、ロールを変更可能 ・ロールを削除可能 になります。 |
関連項目:ロールをユーザーから取り消す |
現行セッションのロールを使用可能または使用禁止にする | |
SET
ROLE {role [IDENTIFIED BY password] |
|
┗ | 現行のセッションのロールを使用可能または使用禁止にするには、SET ROLE文を使用します。ロール名(role)を指定すると、それ以外のロールは現行のセッションで使用禁止になります。IDENTIFIED BY句では、ロールに対するパスワードを指定します。ALLを指定すると、EXCEPT句に指定したロールを除き、現行のセッションに付与されているすべてのロールを使用可能にできます。NONEを指定すると、DEFAULTロールを含むすべてのロールを現行セッションで使用禁止にできます。 |
関連項目:ロールを作成する ロールを使用可能にするために必要な許可を変更する |
ロールを使用可能にするために必要な許可を変更する | |
ALTER
ROLE role |
|
┗ | ロールを使用可能にするために必要な許可を変更するには、ALTER ROLE文でロール名を指定します。NOT IDENTIFIED句を指定すると、パスワードを入力しなくても使用可能になります。IDENTIFIED句に続けてメソッド(BY password、USING package、EXTERNALLY、GLOBALLY)を指定すると、SET ROLE文によってロールを使用可能にする際にメソッドによるユーザーが認可が必要になります。このコマンドを発行するには、ロールにADMIN OPTIONが付与されているか、ALTER ANY ROLEシステム権限が必要です。 |
関連項目:現行セッションのロールを使用可能または使用禁止にする |
ロールをユーザーから取り消す | |
REVOKE
role[, role …] |
|
┗ | ロールをユーザー取り消すには、REVOKE文で取り消すロール名を指定しFROM句で取り消すユーザーを指定します。このコマンドを発行するには、ロールにADMIN OPTIONが付与されているか、AGRANT ANY ROLEシステム権限が必要です。 |
関連項目:ロールをユーザーに付与する 権限を確認する |
データベースからロールを削除する | |
DROP
ROLE role; |
|
┗ | データベースからロールを削除するにはDROP ROLE文で削除したいロールを指定します。ロールを削除すると、付与されていたすべてのユーザーおよびロールからそのロールが取り消され、データベースからも削除されます。 |
関連項目:ロールを作成する |
Oracle管理者のためのSQLリファレンス |
Oracle関連記事リンク集 | |
Database Expert フォーラム 新着記事
- Oracleライセンス「SE2」検証 CPUスレッド数制限はどんな仕組みで制御されるのか (2017/7/26)
データベース管理システムの運用でトラブルが発生したらどうするか。DBサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は、Oracle SE2の「CPUスレッド数制限」がどんな仕組みで行われるのかを検証します - ドメイン参加後、SQL Serverが起動しなくなった (2017/7/24)
本連載では、「SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「ドメイン参加後にSQL Serverが起動しなくなった場合の対処方法」を解説します - さらに高度なSQL実行計画の取得」のために理解しておくべきこと (2017/7/21)
日本オラクルのデータベーススペシャリストが「DBAがすぐ実践できる即効テクニック」を紹介する本連載。今回は「より高度なSQL実行計画を取得するために、理解しておいてほしいこと」を解説します - データベースセキュリティが「各種ガイドライン」に記載され始めている事実 (2017/7/20)
本連載では、「データベースセキュリティに必要な対策」を学び、DBMSでの「具体的な実装方法」や「Tips」などを紹介していきます。今回は、「各種ガイドラインが示すコンプライアンス要件に、データベースのセキュリティはどのように記載されているのか」を解説します
|
|