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 接続のトラブルシューティング

Kerberos 認証を有効にしようとしたり、使おうとしたりしたときに予期しないエラーが発生した場合は、データベース・サーバとクライアントで追加の診断メッセージを有効にすることをおすすめします。

データベース・サーバの起動時に -z オプションを指定します。または、すでに実行中のサーバのデータベース・サーバ・メッセージ・ログに追加の診断メッセージを表示するには CALL sa_server_option( 'DebuggingInformation', 'ON' ) を使用します。LogFile 接続パラメータを使用すると、指定したファイルにクライアント診断メッセージが書き込まれます。LogFile 接続パラメータを使用する代わりに、コマンド dbping -z を実行することもできます。-z パラメータにより診断メッセージが表示され、接続の問題の原因を特定するのに役立ちます。

データベース・サーバの起動に関する問題
現象 一般的な解決策
「Kerberos GSS-API ライブラリをロードできません。」メッセージ
  • Kerberos クライアントが、GSS-API ライブラリも含めて、データベース・サーバ・コンピュータにインストールされていることを確認します。

  • ロードしようとしたライブラリ名が、データベース・サーバの -z 出力にリストされます。ライブラリ名が正しいことを確認します。必要に応じて、-kl オプションを使用して正しいライブラリ名を指定します。

  • ディレクトリと、サポートしているライブラリが、ライブラリ・パス (Windows では %PATH%) にリストされていることを確認します。

  • GSS-API ライブラリにエントリ・ポイントがないことがデータベース・サーバの -z 出力に示されていた場合、そのライブラリはサポートされている Kerberos Version 5 GSS-API ライブラリではありません。

「サーバ名 "server-name" の Kerberos クレデンシャルを取得できません。」メッセージ
  • server-name@REALM のプリンシパルが KDC にあることを確認します。プリンシパルは大文字と小文字が区別されるので、データベース・サーバ名とプリンシパル名のユーザ部分の大文字と小文字が一致していることを確認します。

  • SQL Anywhere サーバ名がプリンシパルのプライマリ/ユーザ部分になっていることを確認します。

  • サーバのプリンシパルが keytab ファイルに抽出されていること、およびその keytab ファイルが Kerberos クライアントに対して適切なロケーションにあることを確認します。Kerberos クライアントを参照してください。

  • データベース・サーバ・コンピュータ上の Kerberos クライアントの領域がサーバ・プリンシパルの領域と異なっている場合は、-kr オプションを使用してサーバ・プリンシパルの領域を指定します。

「Kerberos ログインが失敗しました。」クライアント・エラー
  • データベース・サーバの診断メッセージを確認します。サーバが使用する keytab ファイルに関する問題のなかには、クライアントが認証しようとするまで検出されないものがあります。

Kerberos クライアント接続のトラブルシューティング

クライアントが Kerberos 認証を使用して接続しようとしてエラーが発生した場合について、次の表に示します。

現象 一般的な解決策
「Kerberos ログインはサポートされていません。」エラーが発生し、LogFile にメッセージ 「Kerberos GSS-API ライブラリのロードに失敗しました」が出力されている。
  • Kerberos クライアントが、GSS-API ライブラリも含めて、クライアント・コンピュータにインストールされていることを確認します。

  • LogFile で指定されたファイルに、ロードしようとしたライブラリがリストされています。ライブラリ名が正しいことを確認し、必要に応じて Kerberos 接続パラメータを使用して正しいライブラリ名を指定します。

  • サポートしているライブラリがあるディレクトリがライブラリ・パス (Windows では %PATH%) にリストされていることを確認します。

  • GSS-API ライブラリにエントリ・ポイントがないことが LogFile 出力に示されていた場合、そのライブラリはサポートされている Kerberos Version 5 GSS-API ライブラリではありません。

「Kerberos ログインはサポートされていません。」エラー
  • データベース・サーバに対して -krb、-kl、-kr の各サーバ・オプションが 1 つ以上指定されており、Kerberos ログインが有効になっていることを確認します。

  • Kerberos がクライアントとサーバの両プラットフォーム上の SQL Anywhere でサポートされていることを確認します。

「Kerberos ログインが失敗しました。」エラー
  • ユーザが Kerberos にログイン済みであること、およびそのユーザに期限が切れていない有効な TGT があることを確認します。

  • クライアント・コンピュータとサーバ・コンピュータとの間で、時刻のずれが 5 分未満であることを確認します。

「ログイン・モード 'Kerberos' は、login_mode 設定で許可されていません。」エラー
  • Kerberos ログインが許可されるには、login_mode オプションのパブリックまたは一時的なパブリックのデータベース・オプションの設定に値 Kerberos が含まれている必要があります。

「ログイン ID 'client-Kerberos-principal' はどのデータベース・ユーザ ID にもマップされていません。」
  • Kerberos プリンシパルが GRANT KERBEROS LOGIN 文を使用してデータベース・ユーザ ID にマッピングされている必要があります。GRANT KERBEROS LOGIN 文には、領域を含む完全なクライアント・プリンシパルが指定されている必要があります。また、インスタンスまたは領域しか違わないプリンシパルも別のプリンシパルとして扱われます。

  • また、明示的にマッピングされていない有効な Kerberos プリンシパルを接続可能にするには、GRANT CONNECT を使用して、ゲスト・データベース・ユーザ ID とパスワードを作成します。