Oracleグラントについて

権限

権限とはデータベースにログインしたユーザに許可する操作の事です。

例えば、更新や削除は行って欲しくないというユーザには、検索の権限のみ与えるというような使い方をします。

Oracleの権限には「オブジェクト権限」と「システム権限」があります。詳しくは順を追ってみていきましょう。

オブジェクト権限

オブジェクト権限は、他人の所有しているオブジェクトに対して何ができるのかを設定します。

所有者が異なる表やビューなどのオブジェクトを参照したい場合は、その所有者から「SELECTしてもいいよ」とか「更新してもいいよ」といった権限を与えてもらう必要があります。

構文(ユーザにオブジェクト権限を付与する)
GRANT [オブジェクト権限名] ON [オブジェクト名] TO [ユーザ名 | PUBLIC]
  [WITH ADMIN OPTION] ; 

※「PUBLIC」を指定すると全てのユーザに権限を与える意味になります。

WITH ADMIN OPTION を付けると与えた権限やロールを他のユーザやロールへ付与する権限も与えます。

オブジェクト権限をユーザではなくロールに対して付与することもできます。

構文(ロールにオブジェクト権限を付与する)
GRANT [オブジェクト権限名] ON [オブジェクト名] TO [ロール名];

オブジェクト権限名説明
ALTER表や順序を変更する権限
DELETE表のデータを削除する権限
EXECUTEプロシージャやパッケージを実行する
INDEX表に索引を作成する権限
INSERT表にデータを挿入する権限
REFERENCES参照整合性制約を作成する権限
SELECT表やビューを検索する権限
UPDATE表のデータを更新する権限

 

システム権限

システム権限は、ユーザがDBに対して何ができるのかを設定します。

この権限を与えてもらわなければ自分のオブジェクトを操作できないどころか、データベースに接続することすらできません。

システム権限は以下表のようにかなりの種類がありますので権限を与える時は、権限をロールにまとめたものをユーザに付与するのが一般的です。

権限の一覧は以下のSQLで確認できます。

権限の一覧を確認するSQL
SELECT PRIVILEGE FROM SESSION_PRIVS ORDER BY PRIVILEGE;

権限の付与は以下のように実行します。

システム権限付与の構文
<ユーザにシステム権限を付与する>
GRANT [システム権限名] TO [ユーザ名] [WITH ADMIN OPTION]; <ロールにシステム権限を付与する> GRANT [システム権限名] TO [ロール名]; <ユーザにロールを付与する> GRANT [ロール名] TO [ユーザ名] [WITH ADMIN OPTION]; 

WITH ADMIN OPTION を付けると与えた権限やロールを他のユーザやロールへ付与する権限も与えます。

システム権限名説明
ADMINISTER DATABASE TRIGGER 
ADMINISTER RESOURCE MANAGER 
ADMINISTER SECURITY 
ALTER ANY CLUSTER任意のスキーマ内のクラスタを変更する権限
ALTER ANY DIMENSION 
ALTER ANY INDEX索引を変更する権限
ALTER ANY INDEXTYPE 
ALTER ANY LIBRARY 
ALTER ANY OPERATOR 
ALTER ANY OUTLINE 
ALTER ANY PROCEDUREプロシージャを変更する権限
ALTER ANY ROLEロールを変更する権限
ALTER ANY SECURITY PROFILE 
ALTER ANY SEQUENCEシーケンスを変更する権限
ALTER ANY SNAPSHOT 
ALTER ANY TABLE表を変更する権限
ALTER ANY TRIGGER 
ALTER ANY TYPE 
ALTER DATABASEデータベースを変更する権限
ALTER PROFILEプロファイルを変更する権限
ALTER RESOURCE COST 
ALTER ROLLBACK SEGMENT 
ALTER SESSIONセッションのパラメータが変更できる権限
ALTER SYSTEM 
ALTER TABLESPACE 
ALTER USER他ユーザを変更する権限
ANALYZE ANY表・索引を分析する権限
AUDIT ANYスキーマオブジェクトを監査する権限
AUDIT SYSTEM 
BACKUP ANY TABLE 
BECOME USER 
COMMENT ANY TABLE表にコメントを作成する権限
CREATE ANY CLUSTER任意のスキーマ内にクラスタを作成する権限
CREATE ANY CONTEXT 
CREATE ANY DIMENSION 
CREATE ANY DIRECTORY 
CREATE ANY INDEX任意のスキーマ内に索引を作成する権限
CREATE ANY INDEXTYPE 
CREATE ANY LIBRARY 
CREATE ANY OPERATOR 
CREATE ANY OUTLINE 
CREATE ANY PROCEDURE任意のスキーマ内にプロシージャを作成する権限
CREATE ANY SECURITY PROFILE 
CREATE ANY SEQUENCE任意のスキーマ内に順序を作成する権限
CREATE ANY SNAPSHOT 
CREATE ANY SYNONYM任意のスキーマ内に別名を作成する権限
CREATE ANY TABLE任意のスキーマに表を作成する権限
CREATE ANY TRIGGER任意のスキーマ内にトリガーを作成する権限
CREATE ANY TYPE 
CREATE ANY VIEW任意のスキーマにビューを作成する権限
CREATE CLUSTERクラスタセグメントを作成する権限
CREATE DATABASE LINKプライベートデータベースリンクを作成する権限
CREATE DIMENSION 
CREATE INDEXTYPE 
CREATE LIBRARY 
CREATE OPERATOR 
CREATE PROCEDURE自スキーマ内にプロシージャを作成する権限
CREATE PROFILEプロファイルを作成する権限
CREATE PUBLIC DATABASE LINK 
CREATE PUBLIC SYNONYMパブリックシノニムを作成するための権限
CREATE ROLEロールを作成する権限
CREATE ROLLBACK SEGMENT 
CREATE SECURITY PROFILE 
CREATE SEQUENCE自スキーマ内に順序を作成する権限
CREATE SESSION 
CREATE SNAPSHOT 
CREATE SYNONYM自スキーマ内に別名を作成する権限
CREATE TABLE自スキーマに表を作成する権限
CREATE TABLESPACE表領域を作成する権限
CREATE TRIGGER自スキーマにトリガーを作成する権限
CREATE TYPE 
CREATE USERユーザを作成する権限
CREATE VIEW自スキーマにビューを作成する権限
DEBUG ANY PROCEDURE 
DEBUG CONNECT ANY 
DEBUG CONNECT SESSION 
DEBUG CONNECT USER 
DELETE ANY TABLE表・ビューの行を削除する権限
DEQUEUE ANY QUEUE 
DROP ANY CLUSTERクラスタを削除する権限
DROP ANY CONTEXT 
DROP ANY DIMENSION 
DROP ANY DIRECTORY 
DROP ANY INDEX索引を削除する権限
DROP ANY INDEXTYPE 
DROP ANY LIBRARY 
DROP ANY OPERATOR 
DROP ANY OUTLINE 
DROP ANY PROCEDUREプロシージャを削除する権限
DROP ANY ROLEロールを削除する権限
DROP ANY SECURITY PROFILE 
DROP ANY SEQUENCEシーケンスを削除する権限
DROP ANY SNAPSHOT 
DROP ANY SYNONYMシノニムを削除する権限
DROP ANY TABLE表を削除する権限
DROP ANY TRIGGERトリガーを削除する権限
DROP ANY TYPE 
DROP ANY VIEWビューを削除する権限
DROP PROFILEプロファイルを削除する権限
DROP PUBLIC DATABASE LINK 
DROP PUBLIC SYNONYMパブリックシノニムを削除する権限
DROP ROLLBACK SEGMENT 
DROP TABLESPACE表領域を削除する権限
DROP USERユーザを削除する権限
ENQUEUE ANY QUEUE 
EXECUTE ANY INDEXTYPE 
EXECUTE ANY LIBRARY 
EXECUTE ANY OPERATOR 
EXECUTE ANY PROCEDUREプロシージャを実行する権限
EXECUTE ANY TYPE 
EXEMPT ACCESS POLICY 
FORCE ANY TRANSACTION 
FORCE TRANSACTION 
GLOBAL QUERY REWRITE 
GRANT ANY PRIVILEGE 
GRANT ANY ROLE 
INSERT ANY TABLE表・ビューに行を挿入する権限
LOCK ANY TABLE表・ビューをロックする権限
MANAGE ANY QUEUE 
MANAGE TABLESPACE 
ON COMMIT REFRESH 
QUERY REWRITE 
READUP 
READUP DBHIGH 
RESTRICTED SESSION 
RESUMABLE 
SELECT ANY DICTIONARY 
SELECT ANY SEQUENCEシーケンスを読み込む権限
SELECT ANY TABLE表・ビュー・スナップショットを検索する権限
SYSDBADBの起動・停止、オブジェクトの作成など何でも出来る権限
SYSOPERDBの起動・停止はできるが、データディクショナリへはアクセス不可
UNDER ANY TABLE 
UNDER ANY TYPE 
UNDER ANY VIEW 
UNLIMITED TABLESPACE 
UPDATE ANY TABLE表・ビューを更新する権限
WRITEDOWN 
WRITEDOWN DBLOW 
WRITEUP 
WRITEUP DBHIGH 

转载于:https://www.cnblogs.com/strivers/p/6741245.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值