プライマリ・コンテンツに移動
Oracle® Database管理者リファレンス
18c for Microsoft Windows
E99714-01
目次へ移動
目次
索引へ移動
索引

前
次

外部ユーザーおよびロールの手動による管理の概要

管理者、オペレータ、ユーザーおよびロールを手動で構成して、オペレーティング・システムに認証させます。

手動による構成では、Oracle Databaseのコマンドライン・ツールを使用して、レジストリを編集し、「Active Directoryユーザーとコンピュータ」でローカル・グループを作成します。

次のものはすべて、Oracle Databaseにパスワードなしでアクセスできるように手動で構成することができます。

また、ローカルおよび外部データベース・ロールを手動で作成し、Windowsドメイン・ユーザーおよびグローバル・グループに付与できます。

この項の内容は、次のとおりです。

外部オペレーティング・システム・ユーザーの手動による作成について

Windowsを使用して外部オペレーティング・システム・ユーザー(データベース管理者以外)を認証し、パスワードなしでデータベースにアクセスできるようにする方法を説明します。

Windowsを使用して外部オペレーティング・システム・ユーザーを認証する場合、データベースのユーザー名へのアクセス制限は、オペレーティング・システムにのみ依存します。

Windowsローカル・ユーザーをOracleホームのOracleホーム・ユーザーとして使用する場合、Windowsローカル・ユーザーの外部ユーザー認証は同じコンピュータからのみサポートされます。同じコンピュータまたは異なるコンピュータからのWindowsドメイン・ユーザーの外部ユーザー認証をサポートするには、Windowsドメイン・ユーザーまたはWindows組込みユーザーをOracleホーム・ユーザーとして使用することをお薦めします。

次の手順では、2つのWindowsユーザー名が認証されます。

  • ローカル・ユーザーjones

  • ドメインsalesのドメイン・ユーザーjones

ローカル・ユーザーjonesは、別のコンピュータ上に存在している可能性があるOracle Databaseサーバーにアクセスするために、そのローカルWindowsクライアント・コンピュータにログインします。別のコンピュータ上の別のデータベースやリソースにアクセスする場合には、アクセスするたびにローカル・ユーザーのユーザー名とパスワードが必要になります。

ドメインsalesのドメイン・ユーザーjonesは、多数の他のWindowsコンピュータおよびリソースを含み、そのうちの1つにOracle Databaseサーバーがあるsalesドメインにログオンします。ドメイン・ユーザーは、ドメインのすべてのリソースに1つのユーザー名およびパスワードでアクセスできます。

Oracle Databaseサーバーでの外部ユーザー認証タスクの実行

外部ユーザー認証タスクを実行するには、この手順を使用します。

Oracle Databaseサーバーで次のように外部ユーザー認証タスクを実行します。

  1. パラメータOS_AUTHENT_PREFIXinit.oraファイルに追加します。

    OS_AUTHENT_PREFIXの値は、オペレーティング・システムのユーザー名およびパスワードを使用してサーバーに接続を試みる、ローカルまたはドメインのユーザー名に接頭辞として付けられます。この接頭辞付きのユーザー名は、接続要求が試行された場合にデータベース内のOracle Databaseユーザー名と比較されます。パラメータOS_AUTHENT_PREFIXとWindowsネイティブ認証方式を組み合わせて、サーバーとのクライアント接続を保護し信頼性を高くすることをお薦めします。

  2. OS_AUTHENT_PREFIXの値を設定します。選択肢は次のとおりです。
    • 文字列

      たとえば、xyzと指定すると、Windowsのユーザー名の先頭に、接頭辞としてxyzが付きます(たとえば、ローカル・ユーザーjonesxyzjonesになり、ドメインsalesのドメイン・ユーザーjonesxyzsales\jonesになります)。 文字列値には、大文字と小文字の区別がありません。

    • ""(間にスペースのない2つの二重引用符)

      推奨値。この値を使用すると、Windowsのユーザー名に接頭辞を付ける必要がなくなります(たとえば、ローカル・ユーザーjonesjonesになり、ドメインsalesのドメイン・ユーザーjonessales\jonesになります)。

    • 値の指定なし

      OS_AUTHENT_PREFIXに値を指定しないと、デフォルトでOPS$に設定されます(たとえば、ローカル・ユーザーjonesOPS$jonesになり、ドメインsalesのドメイン・ユーザーjonesOPS$sales\jonesになります)。

  3. 「コンピュータの管理」ツールでjonesのWindowsローカル・ユーザー名を作成するか、「Active Directoryユーザーとコンピュータ」でjonesのWindowsドメイン・ユーザー名を作成します(適切な名前が現在存在しない場合)。詳細は、オペレーティング・システムのドキュメントを参照してください。
  4. ファイルsqlnet.oraのパラメータSQLNET.AUTHENTICATION_SERVICESに、ntsが含まれていることを確認します。
  5. SQL*Plusを起動します。
    C:\> sqlplus /NOLOG
    
  6. SYSTEMデータベース管理者(DBA)名でデータベースに接続します。
    SQL> CONNECT SYSTEM
    Enter password: system_password
    

    変更がなければ、SYSTEMのパスワードは、デフォルトではMANAGERです。

  7. 次のように入力して、ローカル外部ユーザーを作成します。
    SQL> CREATE USER xyzjones IDENTIFIED EXTERNALLY;
    

    xyzは初期化パラメータOS_AUTHENT_PREFIXに対して選択した値です。また、jonesはWindowsローカル・ユーザー名です。

  8. 次のように入力して、ローカル外部ユーザーにデータベース・ロールを付与します。
    SQL> GRANT DBA TO xyzjones;
    

    注意:

    Windowsローカル・ユーザーの外部認証は、同じコンピュータからのみサポートされます。一方、Windowsドメイン・ユーザーの外部認証は、同じコンピュータまたは異なるコンピュータからでもサポートされます。

  9. 次のように入力して、ドメイン外部ユーザーを作成します。
    SQL> CREATE USER "XYZSALES\JONES" IDENTIFIED EXTERNALLY;
    

    XYZは初期化パラメータOS_AUTHENT_PREFIXに対して選択した値です。また、SALES\JONESはドメイン名とWindowsドメイン・ユーザー名です。二重引用符は必須で、構文はすべて英大文字で入力する必要があります。

  10. 次のように入力して、ドメイン外部ユーザーにデータベース・ロールを付与します。
    SQL> GRANT DBA TO "XYZSALES\JONES";
    

    二重引用符は必須で、構文はすべて英大文字で入力する必要があります。

  11. Windowsローカル・ユーザーjonesまたはドメイン・ユーザーSALES\JONESを使用してWindowsシステムにログオンします。
  12. SYSDBA名でデータベースに接続します。
    SQL> CONNECT / AS SYSDBA
    
  13. データベースを停止します。
    SQL> SHUTDOWN
    
  14. データベースを再起動します。
    SQL> STARTUP
    

    これにより、パラメータOS_AUTHENT_PREFIXの変更が有効になります。

クライアント・コンピュータでの外部ユーザー認証タスクの実行

クライアント・コンピュータで外部ユーザー認証タスクを実行するには、この手順を使用します。

クライアント・コンピュータで次のように外部ユーザー認証タスクを実行します。

  1. ファイルsqlnet.oraのパラメータSQLNET.AUTHENTICATION_SERVICESに、ntsが含まれていることを確認します。
  2. Oracle Net Configuration Assistantを使用して、クライアント・コンピュータからOracle DatabaseがインストールされているWindowsサーバーへのネットワーク接続を構成します。
  3. SQL*Plusを起動します。
    C:\> sqlplus /NOLOG
    
  4. Windowsサーバーに接続します。
    SQL> CONNECT /@connect_identifier
    

    connect_identifierは、Oracle Databaseのネット・サービス名です。

    Oracle Databaseにより、Windowsローカル・ユーザー名またはドメイン・ユーザー名に対応する自動ログオン・ユーザー名がデータ・ディクショナリで検索および検証され、xyzjonesまたはxyzsales\jonesでの接続が可能になります。

  5. 割り当てられたロールを表示して、ドメイン・ユーザーjonesとしてOracle Databaseに接続していることを確認します。
    SQL> SELECT * FROM USER_ROLE_PRIVS;
    

    ローカル・ユーザーjonesの出力

    USERNAME                       GRANTED_ROLE                   ADM DEF OS_
    ------------------------------ ------------------------------ --- --- ---
    XYZJONES                       DBA                            NO  YES NO 
    1 row selected.
    

    またはドメイン・ユーザーjonesの出力

    USERNAME                       GRANTED_ROLE                   ADM DEF OS_
    ------------------------------ ------------------------------ --- --- ---
    XYZSALES\JONES                 DBA                            NO  YES NO 
    1 row selected.
    

    Oracle Databaseユーザー名は、xyzjonesまたはxyzsales\jonesであるため、xyzjonesまたはxyzsales\jonesにより作成される各オブジェクト(表、ビュー、索引など)には、この名前が接頭辞として付きます。たとえば、別のユーザーがxyzjonesの所有する表sharkを参照するには、次のように入力する必要があります。

    SQL> SELECT * FROM xyzjones.shark 

    注意:

    自動認証機能は、すべてのOracle Netプロトコルでサポートされています。

    関連項目:

    『Oracle Database Net Services管理者ガイド』

複数のデータベースに対する管理者権限、オペレータ権限およびタスク固有の権限の手動による付与の概要

Windowsにより、データベース管理者(SYSDBA)権限、データベース・オペレータ(SYSOPER)権限、およびASMのデータベース管理者(SYSASM)権限、および新しいタスク固有でORA_DBA/SYSDBAシステム権限よりも低い権限を、データベース管理者に対して付与する方法を説明します。

これらの権限では、管理者はクライアント・コンピュータから次のコマンドを発行し、Oracle Databaseへパスワードを入力せずに接続することができます。

SQL> CONNECT / AS SYSOPER
SQL> CONNECT / AS SYSDBA
SQL> CONNECT / AS SYSASM
SQL> CONNECT / AS SYSBACKUP
SQL> CONNECT / AS SYSDG
SQL> CONNECT / AS SYSKM

この機能を使用できるようにするには、管理者のWindowsローカル・ユーザー名またはドメイン・ユーザー名が、「SYSDBA、SYSOPER、SYSASM、SYSDG、SYSBACKUPおよびSYSKM権限を持つWindowsローカル・グループ」に示されたWindowsローカル・グループのいずれかに属している必要があります。

表11-1 SYSDBA、SYSOPER、SYSASM、SYSDG、SYSBACKUPおよびSYSKM権限を持つWindowsローカル・グループ

ローカル・グループ システム権限

ORA_OPER

コンピュータ上のすべてのデータベースに対するSYSOPER権限

ORA_DBA

コンピュータ上のすべてのデータベースに対するSYSDBA権限

ORA_SID_OPER

単一データベースに対するSYSOPER権限(SIDにより識別)

ORA_SID_DBA

単一データベースに対するSYSDBA権限(SIDにより識別)

ORA_HOMENAME_DBA

指定したOracleホームのすべてのデータベース・インスタンスに対するSYSDBA権限

ORA_HOMENAME_OPER

指定したOracleホームから実行するすべてのデータベース・インスタンスを開始および停止するためのSYSOPER権限

ORA_HOMENAME_SYSDG

特定のOracleホームから実行するすべてのデータベース・インスタンスに対するSYSDG権限

ORA_HOMENAME_SYSBACKUP

特定のOracleホームから実行するすべてのデータベース・インスタンスに対するSYSBACKUP権限

ORA_HOMENAME_SYSKM

特定のOracleホームから実行するすべてのデータベース・インスタンスに対するSYSKM権限

ORA_ASMADMIN

コンピュータのすべてのASMインスタンスに対するSYSASM権限

ORA_ASMDBA

コンピュータのすべてのASMインスタンスに対するSYSDBA権限

ORA_ASMOPER

コンピュータのすべてのASMインスタンスに対するSYSOPER権限

注意

上記の表に示したすべてのグループはインストール中に自動的に作成され、Oracleホーム・ユーザーは自動的にORA_HOMENAME_DBAグループに追加されます。詳細は、「インストール時に使用可能になるオペレーティング・システムの認証の概要」を参照してください。

関連項目:

  • 『Oracle Database管理者ガイド』

  • Oracle Automatic Storage Management管理者ガイド

データベース管理者がSYSOPERSYSDBASYSASMSYSDGSYSKMまたはSYSBACKUPとしてパスワードなしで接続できるように手動で設定する手順には次の2つがあり、タスクが実行されるコンピュータにより異なります。

Oracle Databaseサーバーでのシステム権限認証タスクの実行

Oracle Databaseサーバーでシステム権限認証タスクを実行する方法について説明します。

次の手順を実行します。
  1. 管理者のユーザー名をこのグループに追加します。クライアントは必要なシステム権限が付与されるように、これらのうちいずれかのユーザー名を使用してログインします。

    関連項目:

    ユーザーおよびグループの管理方法は、オペレーティング・システムのドキュメントを参照してください。

  2. ファイルsqlnet.oraのパラメータSQLNET.AUTHENTICATION_SERVICESに、ntsが含まれていることを確認します。

クライアント・コンピュータでのシステム権限認証タスクの実行

クライアント・コンピュータでシステム権限認証タスクを実行する方法について説明します。

次の手順を実行します。
  1. Windowsに付与させたいシステム権限に従い、サーバー上のWindowsローカル・グループのいずれかのメンバーであるWindowsドメイン・ユーザーとしてログインします。管理者は、このドメイン・ユーザーを必要なWindowsローカル・グループに追加する必要があります。Windowsローカル・メンバーシップはOracle Databaseが実行するサーバー・システムで作成されます。
  2. ファイルsqlnet.oraのパラメータSQLNET.AUTHENTICATION_SERVICESに、ntsが含まれていることを確認します。
  3. Oracle Net Configuration Assistantを使用して、クライアント・コンピュータからOracle DatabaseがインストールされているWindowsサーバーへのネットワーク接続を構成します。
  4. SQL*Plusを起動します。
    C:\> sqlplus /NOLOG
    
  5. Oracle Databaseに接続します。
    SQL> SET INSTANCE net_service_name
    

    net_service_nameは、Oracle DatabaseのOracle Netのネット・サービス名です。

  6. 必要なシステム権限でデータベースに接続するように、次のいずれかのSQL*Plusコマンドを入力します。
    SQL> CONNECT / AS SYSOPER
    SQL> CONNECT / AS SYSDBA
    SQL> CONNECT / AS SYSASM
    SQL> CONNECT / AS SYSDG
    SQL> CONNECT / AS SYSKM
    SQL> CONNECT / AS SYSBACKUP
    

    これで、Windowsサーバーに接続されます。SYSDBAで接続すると、DBA権限が付与されます。

    関連項目:

    『Oracle Database Net Services管理者ガイド』

新しいユーザーとユーザー・グループの管理

新しいユーザーとユーザー・グループを管理する方法について説明します。

Oracle Databaseのインストール中、ORA_INSTALLORA_DBAORA_OPERORA_HOMENAME_DBAORA_HOMENAME_OPERORA_HOMENAME_SYSDGORA_HOMENAME_SYSBACKUPORA_HOMENAME_SYSKMORA_ASMADMINORA_ASMDBAおよびORA_ASMOPERユーザー・グループは必要な権限で自動的に作成されます。

関連項目:

  • 『Oracle Databaseインストレーション・ガイド

  • Oracle Grid Infrastructureインストレーションおよびアップグレード・ガイドfor Microsoft Windows x64 (64ビット)

外部ロールの手動による作成の概要

WindowsでOracle Databaseロール(外部ロールとも呼ばれます)をユーザーに直接付与する方法を説明します。

Windowsを使用してユーザーを認証する場合、Windowsローカル・グループによりこれらのユーザーに外部ロールを付与できます。

ユーザーが接続すると、これらのロールに対するすべての権限がアクティブになります。外部ロールを使用する場合、すべてのロールはオペレーティング・システムを介して付与および管理されます。外部ロールとOracle Databaseロールの両方を同時に使用することはできません。

次に例を示します。外部ロールを使用できるように設定し、ドメイン・ユーザー名sales\jones(salesはドメイン名、jonesはドメイン・ユーザー名)でWindowsドメインにログオンします。次に、Oracle DatabaseにOracle Databaseユーザーsmithとして接続します。この場合に付与されるロールは、sales\jonesに付与されるロールであり、smithに付与されるロールではありません

外部ロールを手動で作成する手順には次の2つがあり、認証タスクが実行されるコンピュータにより異なります。

Oracle Databaseサーバーでの外部ロール認証タスクの実行

Oracle Databaseサーバーで外部ロール認証タスクを実行する方法について説明します。

次の手順を実行します。
  1. 初期化パラメータOS_ROLESinit.oraファイルに追加します。
  2. OS_ROLEStrueに設定します。

    デフォルトの設定では、このパラメータはfalseです。

  3. ファイルsqlnet.oraのパラメータSQLNET.AUTHENTICATION_SERVICESに、ntsが含まれていることを確認します。
  4. SQL*Plusを起動します。
    C:\> sqlplus /NOLOG
    
  5. Windowsサーバーに接続します。
    SQL> CONNECT / AS SYSDBA
    
  6. 新規のデータベース・ロールを作成します。この新規のロールにはどのような名前でも指定できます。次の例では、DBSALES3というロール名を使用します。
    SQL> CREATE ROLE DBSALES3 IDENTIFIED EXTERNALLY;
    
  7. データベース環境に対応するOracle DatabaseロールをDBSALES3に付与します。
    SQL> GRANT DBA TO DBSALES3 WITH ADMIN OPTN;
    
  8. データベースにSYSDBAとして接続します。
    SQL> CONNECT / AS SYSDBA
    
  9. データベースを停止します。
    SQL> SHUTDOWN
    
  10. データベースを再起動します。
    SQL> STARTUP
    
  11. 次の構文でWindowsローカル・グループを作成します。
    ORA_sid_rolename[_D][_A] 
    

    このコマンドでは、次のことに注意してください。

    • sidは、データベース・インスタンスを示します。

    • rolenameは、付与されるデータベース・ロールを示します。

    • Dは、このデータベース・ロールをデータベース・ユーザーのデフォルト・ロールにすることを示します。

    • Aは、このデータベース・ロールがADMIN OPTIONを含むことを示します。

    文字DおよびAはオプションです。指定する場合は、これらの文字の前にアンダースコアが必要です。

    この例では、ORA_orcl_dbsales3_Dが作成されます。

  12. このグループに、1つ以上のWindowsローカル・ユーザー名またはドメイン・ユーザー名を追加します。

    複数のデータベース・ロールを作成し、次の表に示すように、それぞれ異なるオプションで複数のWindowsグループに付与できます。ORCLインスタンスに接続し、Windowsにより次の4つのWindowsローカル・グループすべてのメンバーとして認証されたユーザーは、デフォルトでdbsales3およびdbsales4に関連付けられた権限を付与されます(オプション_Dが指定されているためです)。このようなユーザーが最初にdbsales3またはdbsales4のメンバーとして接続し、SET ROLEコマンドを使用すると、データベース・ロールdbsales1およびdbsales2にもアクセスできます。ただし、ユーザーが最初にデフォルトのロールで接続せずに、dbsales1またはdbsales2で接続を試みても、接続できません。また、このようなユーザーは、dbsales2およびdbsales4をその他のロールに付与できます(オプション_Aが指定されているためです)。

    データベース・ロール Windowsグループ

    dbsales1

    ORA_ORCL_dbsales1

    dbsales2

    ORA_ORCL_dbsales2_a

    dbsales3

    ORA_ORCL_dbsales3_d

    dbsales4

    ORA_ORCL_dbsales4_da

    注意:

    Oracle Databaseでグループ名がロール名に変換されるとき、名前は大文字に変換されます。

関連項目:

ユーザーおよびグループの管理方法は、オペレーティング・システムのドキュメントを参照してください。

クライアント・コンピュータでの外部ロール認証タスクの実行

クライアント・コンピュータで外部ロール認証タスクを実行する方法について説明します。

次の手順を実行します。
  1. Windowsサーバー上にある同じユーザー名とパスワードで、Windowsローカル・ユーザー名またはドメイン・ユーザー名を作成します(適切なユーザー名が現在存在しない場合)。
  2. ファイルsqlnet.oraのパラメータSQLNET.AUTHENTICATION_SERVICESに、ntsが含まれていることを確認します。
  3. Oracle Net Configuration Assistantを使用して、クライアント・コンピュータからOracle Databaseへのネットワーク接続を構成します。
  4. SQL*Plusを起動します。
    C:\> sqlplus /NOLOG
    
  5. 正しいインスタンスに接続します。
    SQL> SET INSTANCE connect_identifier
    

    connect_identifierは、手順3で作成した、Oracle Database接続のネット・サービス名です。

  6. Oracle Databaseに接続します。
    SQL> CONNECT SMITH
    Enter password: password
    

    これで、Net Servicesを使用して、Oracle Databaseユーザー名smithでWindowsサーバーに接続されます。Oracle Databaseユーザー名smithに適用されるロールは、すでにデータベース・ロールにマップされたWindowsユーザー名に対して定義されるすべてのロールで構成されます(この例では、ORA_DBSALES3_D)。認証された接続で使用可能なすべてのロールは、Windowsユーザー名、およびユーザーが属しているOracle固有のWindowsローカル・グループ(ORA_SID_DBSALES1またはORA_SID_DBSALES4_DAなど)により決定されます。

    注意:

    OSDBAおよびOSOPERは、2つの特別なオペレーティング・システム・グループの汎用名で、オペレーティング・システムの認証を使用する場合にデータベース管理者のログオンを制御します。

    関連項目:

    • 『Oracle Database管理者ガイド』

    • 『Oracle Database Net Services管理者ガイド』

ユーザーの手動による移行について

ローカル・ユーザーまたは外部ユーザーは、User Migration Utilityを使用してエンタープライズ・ユーザーに移行できます。

データベース・ユーザー・モデルからエンタープライズ・ユーザー・モデルに移行することで、企業の環境における管理、セキュリティおよびユーザビリティの問題への解決策が提供されます。エンタープライズ・ユーザー・モデルでは、すべてのユーザー情報がLDAPディレクトリ・サービスに移動されるため、次のような利点があります。

  • ユーザー情報の一元的な格納および管理

  • ユーザー認証の一元管理

  • セキュリティの強化

User Migration Utilityはコマンドライン・ツールです。次のような形式の構文です。

C:\ umu parameters

User Migration Utilityパラメータのリストを取得するには、次のように入力します。

C:\ umu help=yes

関連項目:

『Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド』の「ユーザー移行ユーティリティの使用」に関する項