Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ データベース管理 » SQL Anywhere データベース接続 » データベース接続 » Kerberos 認証

 

Kerberos を使用するための SQL Anywhere データベースの設定

Kerberos ログインを使用するように SQL Anywhere データベースを設定できます。

前提条件

SET ANY PUBLIC OPTION システム権限と MANAGE ANY USER システム権限が必要です。

Kerberos の設定について、SQL Anywhere で使用できるように設定を済ませている必要があります。

内容と備考

Kerberos ログイン機能を使用すると、データベース接続、オペレーティングシステム、ネットワークのログインを、単一のユーザ ID とパスワードで管理できます。

 ♦ タスク
  1. SQL Anywhere データベースサーバを -krb または -kr オプションを使用して起動し、Kerberos 認証を有効にします。また、-kl オプションを使用して GSS-API ライブラリのロケーションを指定し、Kerberos を有効にすることもできます。

  2. パブリックオプションまたは一時的なパブリックオプション login_mode を Kerberos を含む値に変更します。データベースオプションはそれらが見つかったデータベースにのみ適用されるので、複数のデータベースが同じデータベースサーバにロードされ実行されていても、データベースごとに異なる Kerberos ログイン設定を持たせることができます。次に例を示します。

    SET OPTION PUBLIC.login_mode = 'Kerberos,Standard';
    警告

    login_mode データベースオプションを Kerberos に設定すると、接続できるのは、Kerberos ログインマッピングを付与されているユーザだけに制限されます。SYS_AUTH_DBA_ROLE システムロールを持つユーザでないかぎり、ユーザ ID とパスワードを使用して接続しようとすると、エラーが発生します。

  3. クライアントユーザのデータベースユーザ ID を作成します。既存のデータベースユーザに適切な権限があれば、そのデータベースユーザ ID を Kerberos ログインに使用できます。次に例を示します。

    CREATE USER "kerberos-user"
    IDENTIFIED BY abc123;
  4. GRANT KERBEROS LOGIN TO 文を実行して、クライアントの Kerberos プリンシパルから既存のデータベースユーザ ID へのマッピングを作成します。次に例を示します。

    GRANT KERBEROS LOGIN TO "pchin@MYREALM.COM" 
    AS USER "kerberos-user";

    使用されている Kerberos プリンシパルにマッピングがない場合に接続するには、Guest データベースユーザ ID が存在することと、パスワードがあることを確認します。

  5. クライアントユーザが Kerberos プリンシパルを使用してログオン済みである (有効な Kerberos TGT:Ticket Granting Ticket がある) こと、およびクライアントの Kerberos チケットの期限が切れていないことを確認します。ドメインアカウントにログインしている Windows ユーザは、TGT をすでに持っており、プリンシパルに必要なパーミッションがあれば、サーバに認証されます。

    チケット付与権限付きチケットはユーザパスワードを使用して暗号化された Kerberos チケットで、ユーザ ID の検証に Ticket Granting Service が使用します。

  6. KERBEROS 接続パラメータ (通常は KERBEROS=YES、ただし KERBEROS=SSPI または KERBEROS=GSS-API-library-file も使用可) を指定して、クライアントから接続します。ユーザ ID またはパスワードの接続パラメータが指定された場合は、無視されます。次に例を示します。

    dbisql -c "KERBEROS=YES;Server=my_server_princ"

結果

SQL Anywhere データベースが Kerberos 認証を使用するように設定されます。

次の手順

Kerberos 認証を使用してクライアントから接続することができます。または、Kerberos ログインマッピングを作成することもできます。

次の SQL 文を使用した接続は成功します。ただし、接続が成功するためには、データベースサーバ上のデフォルトデータベースの Kerberos ログインマッピングと一致するユーザプロファイル名を使用してユーザがログインしていることが必要です。

CONNECT USING 'KERBEROS=YES';

次のすべてが成り立つ場合は、CONNECT 文からデータベースに接続できます。

  • データベースサーバが現在実行中である。

  • 現在のデータベースサーバ上のデフォルトデータベースが、Kerberos 認証された接続を受け入れるように有効になっている。

  • Kerberos ログインマッピングがユーザの現在の Kerberos プリンシパルに対して作成されている。

  • データベースサーバから接続についての詳細情報を要求された場合 (Interactive SQL を使用した場合など) に、情報を追加せずに [OK] をクリックする。


 参照