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

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - データベース管理 » データベースの起動とデータベースへの接続 » SQL Anywhere データベース接続 » Kerberos 認証

 

Kerberos を使用するように SQL Anywhere を設定

  1. SQL Anywhere データベースで Kerberos 認証を設定します。Kerberos 認証の設定を参照してください。

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

  3. パブリック・オプションまたは一時的なパブリック・オプション login_mode を Kerberos を含む値に変更します。このオプションの設定を変更するには DBA 権限が必要です。Kerberos ログインを許可するかどうかは、login_mode データベース・オプションで指定します。データベース・オプションは、それが指定されているデータベースにしか適用されないため、同じサーバ内にロードされて動作している場合でも、データベースが異なれば Kerberos ログインの設定も異なります。次に例を示します。

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

    login_mode データベース・オプションには、次の値を 1 つまたは複数指定できます。

    • Standard   標準ログインを許可します。これはデフォルト値です。標準ログインでは、ユーザ ID とパスワードの両方を入力する必要があり、Integrated や Kerberos の接続パラメータは使用されません。

    • Integrated   統合化ログインを許可します。

    • Kerberos   Kerberos ログインを許可します。

    警告

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

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

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

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

    マッピングのない Kerberos プリンシパルが使用されているときに接続する場合は、Guest データベース・ユーザ ID が存在し、パスワードが設定されていることを確認します。デフォルトの統合化ログイン・ユーザの作成を参照してください。

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

    TGT はユーザ・パスワードを使用して暗号化された Kerberos チケットで、ユーザ ID の検証にチケット保証サービス (TGS:Ticket Granting Service) が使用します。

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

    dbisql -c "KERBEROS=YES;ENG=my_server_princ"
Interactive SQL の例

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

CONNECT USING 'KERBEROS=YES';

次のすべてに該当する場合、Interactive SQL の CONNECT 文はデータベースに接続できます。

  • サーバが現在実行中である。

  • 現在のサーバのデフォルト・データベースが、Kerberos 認証接続を受け入れることができる。

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

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

参照