sql >> データベース >  >> RDS >> Oracle

Oracle-読み取り専用ユーザーを作成する方法

    Oracleデータベースのユーザーには、付与した権限のみがあります。したがって、他の権限を付与しないだけで、読み取り専用ユーザーを作成できます。

    ユーザーを作成するとき

    CREATE USER ro_user
     IDENTIFIED BY ro_user
     DEFAULT TABLESPACE users
     TEMPORARY TABLESPACE temp;
    

    ユーザーには、データベースにログインする権限すらありません。あなたはそれを許可することができます

    GRANT CREATE SESSION to ro_user
    

    次に、必要な読み取り権限を付与することができます。たとえば、RO_USERが必要な場合 SCHEMA_NAME.TABLE_NAMEをクエリできるようにする 、あなたは次のようなことをします

    GRANT SELECT ON schema_name.table_name TO ro_user
    

    ただし、一般的には、役割を作成し、オブジェクト特権を役割に付与して、さまざまなユーザーに役割を付与できるようにすることをお勧めします。のようなもの

    役割を作成する

    CREATE ROLE ro_role;
    

    特定のスキーマ内のすべてのテーブルに対するSELECTアクセスをロールに付与します

    BEGIN
      FOR x IN (SELECT * FROM dba_tables WHERE owner='SCHEMA_NAME')
      LOOP
        EXECUTE IMMEDIATE 'GRANT SELECT ON schema_name.' || x.table_name || 
                                      ' TO ro_role';
      END LOOP;
    END;
    

    次に、ユーザーに役割を付与します

    GRANT ro_role TO ro_user;
    


    1. PostgreSQLの関数名は大文字と小文字を区別しませんか?

    2. スマートホームデータモデル

    3. MySQLを使用して3つのテーブルを結合する

    4. OracleでのSELECTCOUNT(*)FROMsometableのより高速な代替手段