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

Oracleでユーザーを作成して権限を付与する方法

    いつものように、Oracleがホストされているサーバーに接続することから始め、次にSYSTEMとしてOracle自体に接続します。 アカウント。

    SYSTEM accountは、Oracleのインストール時に自動的に生成される数少ない事前定義された管理アカウントの1つです。 SYSTEM はほとんどの管理タスクを実行できますが、私たちが特に関心を持っているタスクはアカウント管理です。

    ユーザーの作成

    SYSTEMとして接続すると 、CREATE USERを発行するだけです 新しいアカウントを生成するコマンド。

    CREATE USER books_admin IDENTIFIED BY MyPassword;
    

    ここでは、単にbooks_adminを作成しています IDENTIFIEDであるアカウント または指定されたpasswordによって認証されます 。

    付与ステートメント

    新しいbooks_adminを使用 アカウントが作成されたら、GRANTを使用してアカウントへの権限の追加を開始できます 声明。 GRANT は非常に強力なステートメントであり、多くの可能なオプションがありますが、コア機能は両方のusersの特権を管理することです。 およびroles データベース全体。

    役割の提供

    通常、最初に、CONNECTから始めて、アカウントをさまざまな役割にアタッチすることにより、ユーザーに特権を割り当てる必要があります。 役割:

    GRANT CONNECT TO books_admin;
    

    より強力なユーザーを作成するために、RESOURCEを追加することも検討してください。 ロール(ユーザーがカスタムスキーマの名前付きタイプを作成できるようにする)またはDBA ロール。これにより、ユーザーはカスタムの名前付きタイプを作成できるだけでなく、それらを変更および破棄することもできます。

    GRANT CONNECT, RESOURCE, DBA TO books_admin;
    
    特権の割り当て

    次に、ユーザーが実際にデータベースに接続し、GRANT CREATE SESSIONを使用してセッションを作成する権限を持っていることを確認します。 。また、GRANT ANY PRIVILEGEを使用して、これをすべての権限と組み合わせます。 。

    GRANT CREATE SESSION GRANT ANY PRIVILEGE TO books_admin;
    

    また、テーブルとデータを実際に作成または変更するために、新しいユーザーがシステムにディスクスペースを割り当てていることを確認する必要があるため、GRANT TABLESPACE そのように:

    GRANT UNLIMITED TABLESPACE TO books_admin;
    
    テーブル権限

    Oracleの新しいバージョンでは通常必要ありませんが、一部の古いインストールでは、新しいユーザーが特定のスキーマおよびデータベーステーブルに対して持つアクセス権を手動で指定する必要がある場合があります。

    たとえば、books_adminが必要な場合 SELECTを実行する機能を持つユーザー 、UPDATEINSERT 、およびDELETE booksの機能 テーブルでは、次のGRANTを実行する可能性があります ステートメント:

    GRANT
      SELECT,
      INSERT,
      UPDATE,
      DELETE
    ON
      schema.books
    TO
      books_admin;
    

    これにより、books_admin booksの4つの基本的なステートメントを実行できます schemaの一部であるテーブル スキーマ。


    1. データをコピーせずにOracleテーブルのコピーを作成するにはどうすればよいですか?

    2. SQLで文字列を小文字に変換する方法

    3. PL / SQLにはJavaと同等のStringTokenizerがありますか?

    4. SQL Serverの2つの日付の間のすべての週の開始日と終了日を取得するにはどうすればよいですか?