zoukankan      html  css  js  c++  java
  • 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 表・ビュー・スナップショットを検索する権限
    SYSDBA DBの起動・停止、オブジェクトの作成など何でも出来る権限
    SYSOPER DBの起動・停止はできるが、データディクショナリへはアクセス不可
    UNDER ANY TABLE  
    UNDER ANY TYPE  
    UNDER ANY VIEW  
    UNLIMITED TABLESPACE  
    UPDATE ANY TABLE 表・ビューを更新する権限
    WRITEDOWN  
    WRITEDOWN DBLOW  
    WRITEUP  
    WRITEUP DBHIGH  
  • 相关阅读:
    输入一个正整数n (1<n<=10),生成 1个 n*n 方阵 求出对角线之和
    关闭ubuntu讨厌的内部错误提示
    ubuntu14.04通过 gvm 安装 go语言开发环境
    codeblocks 控制台输出乱码
    opensuse13.2安装 sass和compass
    执行npm publish 报错:403 Forbidden
    执行npm publish 报错:401 Unauthorized
    使用form表单提交请求如何获取后台返回的数据?
    vscode学习(三)之如何修改打开终端的默认shell
    Agreeing to the Xcode/iOS license requires admin privileges, please run “sudo xcodebuild -license” a...
  • 原文地址:https://www.cnblogs.com/strivers/p/6741245.html
Copyright © 2011-2022 走看看