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

Oracleでユーザーを作成して権限を割り当てる方法

    ユーザーアクセスとセキュリティに関する情報をOracleデータベースに掲載します。この投稿では、Oracleでのユーザーの作成、システム権限とOracleオブジェクト権限、ユーザーに権限を付与する方法、Oracleでユーザーからのすべての権限を表示する方法に関する優れた情報を提供します

    CREATEUSERステートメント

    ユーザー(スキーマ)を作成するために使用されます。

    新しいユーザーのデフォルトの認証はデータベースです。ユーザーにはパスワードが割り当てられ、パスワードはデータベースで暗号化されたままになります。他に2種類の認証が可能です。最初の認証は、オペレーティングシステムレベルを使用した外部認証です。外部認証は、オペレーティングシステムレベルでパスワードをチェックします。

    もう1つは、Oracleセキュリティサービスまたは別のサードパーティのディレクトリサービスでユーザーパスワードをチェックするグローバル認証です。

    属性の割り当て

    ALTERUSERを使用してユーザー属性を変更できます。それらを変更するか、割り当てることができます

    いくつかの属性を設定してユーザーステートメントを作成する

     USERSTEMPORARY TABLESPACEtempQUOTA5MでTTOCDEFAULTTABLESPACEUSERSQUOTA10MによってSCOTTIDENTIFIEDされたユーザーを作成します。systemPROFILEapplication_userPASSWORDEXPIREで5M

    Oracleシステムの権限

    これにより、被付与者はデータベースオブジェクトを作成、変更、削除、および管理できます。たとえば、テーブルスペースを作成したり、データベース内のテーブルの行を削除したりする権限は、システム権限です。

    Oracleには100を超えるシステム権限があります(SYSTEM_PRIVILEGE_MAPテーブルにあります)。

    Oracleデータベースには、SYSDBAおよびSYSOPERと呼ばれる2つの特別な特権があります。どちらの権限でも、STARTUP、SHUTDOWN、OPEN、MOUNT、BACKUP、ARCHIVELOG、RECOVERなどのデータベース操作が可能です。 SYSDBAでは、CREATEDATABASEコマンドとCHANGECHARACTERSETオプションを使用できます。

    システム権限は、データベース管理者によって、grantコマンドを使用してユーザーに提供され、revokeコマンドを使用して取り消されます

    DBAが誰かにシステム特権を提供して、他の人もそれを付与できるようにする必要がある場合は、管理者オプションを指定する必要があります

     GRANT create session TO user; GRANT create session TO user with admin option; Revoke create session from user; 
    ユーザーシステム権限

    ユーザーが作成されると、通常、以下のシステム権限が付与されます

    • クリエイティブセッション
    • テーブルを作成
    • 作成ビュー
    • シーケンスの作成
    • 手順の作成

    このユーザーを使用して、テーブルやその他のオブジェクトの作成を開始できます。

    サンプル
    テストによって識別されたCREATEUSER"TEST"
    DEFAULT TABLESPACE "TOOLS"
    TEMPORARY TABLESPACE "TEMP";
    CREATE TRIGGER to TEST;
    grant CREATE PROCEDURE to TEST;
    CREATE SESSION to TEST;
    CREATE TYPE to TEST;
    CREATE TABLE to TEST;
    CREATE VIEW to TEST;
    grant ALTER SESSION to TEST;
    CREATE SEQUENCE to TEST;
    CREATE SYNONYM to TEST;
    CREATE ANY SYNONYM to TEST;
    UNLIMITED TABLESPACE toTEST;

    Oracleオブジェクトの権限

    これらはデータベースオブジェクト(テーブル、ビュー、プロシージャなど)で付与されます

    所有者はすべての特権を持ち、所有者はオブジェクトに特定の特権を与えることができます

    所有者は、以下のコマンドを使用して特権を提供できます

    オブジェクトに対する権限をユーザーに付与します;

    権限には、選択、挿入、更新、削除、またはすべてがあります

    所有者がすべてのユーザーに特権を提供したい場合

    オブジェクトに対する権限をパブリックに付与します;

    所有者が付与オプションを使用してユーザーに特権を提供したい場合。基本的に、つまり、被付与者はこの特権を他の人にさらに割り当てることができます

    付与オプションを持つユーザーへのオブジェクトに対するGRANT権限;

    同様に、オブジェクトから特権を削除するためのrevokeコマンドがあります

    オラクルの役割とは何ですか?

    ロールは、特権を適用するために使用されるデータベースオブジェクトです。データベースオブジェクトに特権を設定するために、ユーザーに役割を割り当てることができます。

     EBS_ADMIN TO SCOTT; 

    EBS_ADMINロールとそのすべての権限をユーザーSCOTTに付与します。

    ロールの作成と使用

    CREATE ROLE [IDENTIFIED BY ]コマンドは、ロールを作成します。ロールへの特権の割り当ては、GRANTコマンドを使用して行われます。特権の取り消しは、REVOKE FROMROLEを使用して行われます。

    システム権限とオブジェクト権限の違いは何ですか?

    データディクショナリテーブルとビュー

    オラクルは、特権に関する情報を取得するためのデータディクショナリビューを提供しています

    ビューには3つのカテゴリがあります

    権限ビューの確認

    特権に関する便利なクエリ

    Oracleでユーザー権限を確認する方法

     col role for a16col pv for a75 hea'PRIVILEGE OR ROLE' break on role on type skip 1define usercheck ='SH' select grantee、'ROL' type、granted_role pvfrom dba_role_privs where grantee ='&usercheck' unionselect grantee、'PRV 'type、privilege pvfrom dba_sys_privs where grantee ='&usercheck'unionselect grantee、' OBJ'type、max(decode(privilege、' WRITE'、' WRITE、'))|| max(decode(privilege、' READ'、' READ '))|| max(decode(privilege、' EXECUTE'、' EXECUTE'))|| max(decode(privilege、' SELECT'、' SELECT'))|| max(decode(privilege、' DELETE'、' 、DELETE'))|| max(decode(privilege、' UPDATE'、'、UPDATE'))|| max(decode(privilege、' INSERT'、'、INSERT'))||' ON'|| object_type ||' "'||a.owner||'。'||table_name ||'"'pvfrom dba_tab_privs a、dba_objects bwhere a.owner =b.owner and a.table_name =b.object_name anda .grantee ='&usercheck' group by a.owner、table_name、object_type、grantee unionselect username grantee、'---' type、'empty user ---' pv from dba_userswhere not username in(select different grantee from dba_role_privs)and not username in(dba_sys_privsから個別の被付与者を選択)であり、(dba_tab_privsから個別の被付与者を選択)のユーザー名ではなく、'%&usercheck%'のようなユーザー名をusernameでグループ化します。 

    ユーザーに付与されるシステム権限を決定する

     SELECT GRANTEE、PRIVILEGE FROM DBA_SYS_PRIVS WHERE GRANTEE ='USER'; 

    自分が他のユーザーに付与しているテーブル権限を確認します。

     SELECT * FROM USER_TAB_PRIVS_MADE 

    他のユーザーから付与されているテーブル権限を確認する

     SELECT * FROM USER_TAB_PRIVS_RECD; 

    自分が他のユーザーに付与している列レベルの権限を確認します。

     SELECT * FROM USER_COL_PRIVS_MADE; 


    他のユーザーから付与されている列レベルの権限を確認する

     SELECT * FROM USER_COL_PRIVS_RECD; 


    ロールに付与されている権限を確認する

     SELECT * FROM USER_ROLE_PRIVS; 

    Oracleで権限を付与および取り消す方法

    オブジェクトはユーザーから付与/取り消されます select on deptをpublicに付与し、selectondeptをpublicから取り消します。オブジェクトが役割を付与/取り消します deptの削除をdept_roleに付与し、deptの更新をdept_roleから取り消します; 

    関連リンク

    ユーザーの権限と役割の管理:詳細な参照用のOracleドキュメント
    Oracleビュー:Oracleビューの作成、Oracleビューの削除、Oracleビューの変更、作成済みのビューのクエリの決定方法に関する完全ガイド
    create Oracleのテーブル:テーブルは、Oracleデータベースのデータストレージの基本単位です。 Oracle createtableコマンドを使用して外部キー/主キーを使用してテーブルを作成する方法について説明します
    Oracleのシーケンス:Oracleのシーケンスとは、すべてのオプションの説明、それらの作成方法、Oracle12cシーケンスの新機能、それらを削除および変更する方法
    oracle 12cでユーザーを作成する:oracle 12cで共通ユーザーを作成する方法、共通およびローカルユーザーを作成する方法、共通の役割とローカルの役割を作成する方法、およびそれらを管理する方法を確認します

    >

    投稿が気に入っていただければ幸いです。フィードバックをお寄せください

    推奨コース

    OracleSQLの優れたUdemyコースは次のとおりです。
    Oracle-Sql-ステップバイステップ:このコースでは、基本的なSQL、結合、テーブルの作成とその構造の変更、ビューの作成、ユニオン、ユニオンなどすべてについて説明します。 。 SQL初心者のための素晴らしいコースと必須のコース
    完全なOracleSQL認定コース :これは、SQL開発者のスキルに対応できるようになりたい人にとっては良いコースです。わかりやすい説明コース
    OracleSQLDeveloper:Essentials、Tips and Tricks :OracleSql開発者ツールは多くの開発者によって使用されています。このコースでは、それを効果的に使用して生産的なSQL開発者になるための秘訣とレッスンを提供します。
    Oracle SQL Performance Tuning Masterclass 2020 :パフォーマンスの調整は、重要で最も求められているスキルの1つです。これは、それについて学び、SQLパフォーマンスの調整を開始するための良いコースです


    1. Access2016でデータベースを自動的に圧縮および修復する方法

    2. PL/SQL-アプリケーションエラーの例を上げる

    3. SQL ComplianceManager5.9の一般提供の発表

    4. Oracle SQL Developerでテーブルを作成する方法は?