Oracle管理者のためのSQLリファレンス
■権限の確認/付与/取り消し
ユーザーはデータベースに接続したり、SQL文を発行してオブジェクトにアクセスするには「権限」が必要です。権限には「システム権限」と「オブジェクト権限」があります。権限は非常に多くの種類があるため、一般にはいくつかの権限をまとめた「ロール」を作成し、これをユーザーに付与/取り消して管理します。(SQLの表記ルールは、こちらから参照できます)
権限を確認する | |
SELECT
* FROM user_sys_privs; |
|
┗ | ユーザーに与えられている権限を確認するには、USER_SYS_PRIVSまたはSESSION_PRIVSまたはDBA_SYS_PRIVSに問い合わせます。USER_SYS_PRIVSではデータベースに接続しているユーザー自身に直接付与された権限、SESSION_PRIVSではセッションで使用可能な権限(ロール経由で付与されたものを含む)を確認できます。すべてのユーザーの情報を確認するにはDBA_SYS_PRIVSに問い合わせますが、このビューにアクセスするにはSELECT ANY TABLE権限が必要です。この権限は、デフォルトでDBAロールに割り当てられます。 |
関連項目:ロールの確認/作成/付与/変更/取り消し/削除 |
システム権限を付与する | |
GRANT {system_privilege |
ALL PRIVILEGES} |
|
┗ | システム権限を付与するには、GRANT文のTO句で付与するユーザー名、ロール名あるいはPUBLICを明示し、システム権限名(system_privilege)あるいはALL
PRIVILEGESを指定します。システム権限とユーザー(ロール)は複数指定可能です。ALL PRIVILEGESを指定すると、SELECT ANY DICTIONARY権限を除き、すべてのシステム権限を付与できます。ユーザー名にPUBLICを指定すると、すべてのユーザーはその権限によって許可される操作を実行できます。 IDENTIFIED BY句 IDENTIFIED BY句に続けてパスワードを指定することで、既存ユーザーを明確に識別できます(ユーザーが存在しない場合は新規にユーザーが作成されます)。 IDENTIFIED BY句はロールまたはPUBLICには指定できません。 With Admin Option句 With Admin Option句を指定すると、 ・権限がGLOBALロールでない場合、その権限をほかのユーザーに付与可能 ・権限をほかのユーザーから取り消すことが可能 ・権限へのアクセスに必要な認可を変更するため、権限を変更可能 ・権限を削除可能 になります。 |
関連項目:システム権限を取り消す |
システム権限を取り消す | |
REVOKE {system_privilege| ALL PRIVILEGES} |
|
┗ | システム権限を取り消すには、REVOKE文のFROM句でユーザー名、ロール名あるいはPUBLICを明示し、取り消すシステム権限名(system_privilege)あるいはALL PRIVILEGESを指定します。システム権限とユーザー(ロール)は複数指定可能です。PUBLICのシステム権限を取り消す場合、PUBLICを介して付与された権限が取り消されるのみで、直接またはロールを介して付与さた権限は取り消されません。 |
関連項目:システム権限を付与する |
オブジェクト権限を付与する | |
GRANT {object_privilege |
ALL PRIVILEGES} |
|
┗ | オブジェクト権限を付与するには、GRANT文のTO句で付与するユーザー名、ロール名あるいはPUBLICを明示し、ON句で対象となるオブジェクト名(schema.object)あるいはディレクトリ・スキーマ・オブジェクト名、Javaソースおよびリソース・スキーマ・オブジェクト名を指定し、オブジェクト権限名(object_privilege)あるいはALL
PRIVILEGESを指定します。オブジェクト権限とユーザー(ロール)は複数指定可能です。権限を付与する表またはビューの列(column)を指定することも可能です(INSERT、REFERENCES、UPDATEの各権限のみ)。列を指定しないと表またはビューのすべての列に権限が付与されます。 WITH HIERARCHY OPTION句 WITH HIERARCHY OPTION句を指定すると、今後作成されるサブオブジェクトも含めてすべてのサブオブジェクトに対して権限を付与できます。 WITH GRANT OPTION句 WITH GRANT OPTION句を指定すると、ほかのユーザーまたはロールに対するオブジェクト権限の付与を許可できます。ただし、ロールに対してWith Grant Optionは指定できません。 |
関連項目:オブジェクト権限を取り消す |
オブジェクト権限を取り消す | |
REVOKE {object_privilege| ALL PRIVILEGES} |
|
┗ | オブジェクト権限を取り消すには、REVOKE文のFROM句でユーザー名、ロール名あるいはPUBLICを明示し、ON句で対象となるオブジェクト名(schema.object)あるいはディレクトリ・スキーマ・オブジェクト名、Javaソースおよびリソース・スキーマ・オブジェクト名を指定し、オブジェクト権限名(object_privilege)あるいはALL
PRIVILEGESを指定します。オブジェクト権限とユーザー(ロール)は複数指定可能です。 CASCADE CONSTRAINTS句 CASCADE CONSTRAINTS句は、REFERENCES権限またはALL PRIVILEGESを取り消すときにのみ適用します。REFERENCES権限を使用して定義した参照整合性制約を削除します。 FORCE句 FORCE句を指定すると、表または型に依存するユーザー定義型オブジェクトで、EXECUTEオブジェクト権限を取り消せます。 |
関連項目:オブジェクト権限を付与する |
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」などを紹介していきます。今回は、「各種ガイドラインが示すコンプライアンス要件に、データベースのセキュリティはどのように記載されているのか」を解説します
|
|