権限

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

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

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 表・ビュー・スナップショットを検索する権限
SYSDBA DBの起動・停止、オブジェクトの作成など何でも出来る権限
SYSOPER DBの起動・停止はできるが、データディクショナリへはアクセス不可
UNDER ANY TABLE  
UNDER ANY TYPE  
UNDER ANY VIEW  
UNLIMITED TABLESPACE  
UPDATE ANY TABLE 表・ビューを更新する権限
WRITEDOWN  
WRITEDOWN DBLOW  
WRITEUP  
WRITEUP DBHIGH  

Oracleグラントについて的更多相关文章

  1. Oracle分析函数入门

    一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...

  2. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

  3. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...

  4. Oracle 的基本操作符

    != 不等于 select empno,ename,job from scott.emp where job!='manager' ^= 不等于 select empno,ename,job from ...

  5. 使用Zabbix监控Oracle数据库

    Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...

  6. 基于Oracle安装Zabbix

    软件版本 Oracle Enterprise Linux 7.1 64bit Oracle Enterprise Edition 12.1.0.2 64bit Zabbix 3.2.1 准备工作 上传 ...

  7. Oracle Database 12c Data Redaction介绍

    什么是Data Redaction Data Redaction是Oracle Database 12c的高级安全选项之中的一个新功能,Oracle中国在介绍这个功能的时候,翻译为“数据编纂”,在EM ...

  8. 使用Oracle官方巡检工具ORAchk巡检数据库

    ORAchk概述 ORAchk是Oracle官方出品的Oracle产品健康检查工具,可以从MOS(My Oracle Support)网站上下载,免费使用.这个工具可以检查Oracle数据库,Gold ...

  9. 利用Oracle RUEI+EM12c进行应用的“端到端”性能诊断

    概述 我们知道,影响一个B/S应用性能的因素,粗略地说,有以下几个大的环节: 1. 客户端环节 2. 网络环节(可能包括WAN和LAN) 3. 应用及中间层环节 4. 数据库层环节 能够对各个环节的问 ...

  10. 使用技术手段限制DBA的危险操作—Oracle Database Vault

    概述 众所周知,在业务高峰期,某些针对Oracle数据库的操作具有很高的风险,比如修改表结构.修改实例参数等等,如果没有充分评估和了解这些操作所带来的影响,这些操作很可能会导致故障,轻则导致应用错误, ...

随机推荐

  1. 实例Python处理XML文件的方法

    转自:http://www.jb51.net/article/71773.htm 以下是部分代码: <?xml version="1.0" encoding="UT ...

  2. Django ORM之QuerySet

    Django ORM用到三个类:Manager.QuerySet.Model.Manager定义表级方法(表级方法就是影响一条或多条记录的方法),我们可以以models.Manager为父类,定义自己 ...

  3. libevent 网络IO分析

    libevent 网络IO分析 Table of Contents 1. 简介 2. 简单使用与入门 2.1. 定时器-timeout 超时回调 2.2. 信号事件 2.3. 读取 socket 3. ...

  4. EControl平台测试向生产版本工程切换说明

    第一步,备份生产环境版本,假设生产环境版本工程名为SEHEControl,记录版本说明第二部,拷贝测试版本到新文件夹,假设测试版本工程名为SEHEControlTest第三步,进入工程文件夹,修改SL ...

  5. 【JMeter】集合点的设置

    [JMeter]集合点的设置 简单来理解一下,虽然我们的“性能测试”理解为“多用户并发测试”,但真正的并发是不存在的,为了更真实的实现并发这感念,我们可以在需要压力的地方设置集合点,每到输入用户名和密 ...

  6. PHP解决搜索时在URL地址栏输入中文字符搜索结果出现乱码

    这 个问题的出现的前提是本站代码采用utf-8格式,php空间当页面停留在搜索页面时,在浏览器的地址栏输入中文的关键字进行搜索时会出现乱码,在网上查找资料说 明,是因为浏览器默认将url中的中文字符编 ...

  7. ubuntu 安装ftp,配置,和java调用

    1:安装 ftp服务器 sudo apt-get install vsftpd 自动安装使用的是主机的用户名和密码:liyafei,1367xxx 访问方式,ftp://localhost:21,ft ...

  8. 使用java进行excel读取和写入

    1:添加处理excel的依赖jar包 <!-- 引入poi,解析workbook视图 --> <dependency> <groupId>org.apache.po ...

  9. NLP总览

    一.自然语言处理概述 1)自然语言处理:利用计算机为工具,对书面实行或者口头形式进行各种各样的处理和加工的技术,是研究人与人交际中以及人与计算机交际中的演员问题的一门学科,是人工智能的主要内容. 2) ...

  10. testng入门教程12 TestNG执行多线程测试

    testng入门教程 TestNG执行多线程测试 testng入门教程 TestNG执行多线程测试 并行(多线程)技术在软件术语里被定义为软件.操作系统或者程序可以并行地执行另外一段程序中多个部分或者 ...