17

Mac から Windows 認証/統合セキュリティを使用して SQL Server に接続することはできますか? Microsoft が提供する Type 4 JDBC ドライバーを使用しています。フロントエンド (フォームアプリケーション) は Java でコーディングされています。すべてが Windows 上で完全に機能しますが、オフィスの 1 人が Mac を使用しています。

これは可能ですか?参考までに、私は Mac を使ったことがないので、Mac についてはまったくの初心者です。インターネット全体を検索しましたが、解決策が見つかりませんでした。前もって感謝します。

4

7 に答える 7

27

この情報は、私の経験では入手が困難です。authenticationSchemeMicrosoft がルールを変更し、パラメーターを追加したため、私の検索はすべて間違った (古い) 情報になりました。次の人を助けるために、動作する接続文字列の例を次に示します。

jdbc:jtds:sqlserver://123.123.123;instance=server1;databaseName=students;integratedSecurity=true;authenticationScheme=JavaKerberos

また、ドライバーのプロパティで set "Domain"。ユーザー名の設定にドメインを含めないでください。

これは、Mac OSX で jtds を使用して Squirrel SQL (Java) を使用してテストされました。前の文に、この情報を知る必要がある人が使用する可能性のある検索用語が含まれていることを願っています。

于 2012-09-27T15:39:23.147 に答える
4

Kerberos 統合認証を使用して SQL Server に接続する

Microsoft JDBC Driver 4.0 for SQL Server 以降では、アプリケーションはauthenticationScheme接続プロパティを使用して、タイプ 4 Kerberos 統合認証を使用してデータベースに接続することを示すことができます。


SQL Server 用のjTDS JDBC ドライバーは、 FAQで説明されているように、ドメインプロパティを使用するだけで Windows 認証をサポートします。

ドメイン

認証する Windows ドメインを指定します。存在し、ユーザー名とパスワードが指定されている場合、jTDS は通常の SQL Server 認証の代わりに Windows (NTLM) 認証を使用します (つまり、指定されたユーザーとパスワードはドメイン ユーザーとパスワードです)。これにより、Windows 認証のみを受け入れるように構成されているサーバーに、Windows 以外のクライアントがログインできるようになります。

domain パラメーターが存在するが、ユーザー名とパスワードが提供されていない場合、jTDS はネイティブのシングル サインオン ライブラリを使用し、ログインしている Windows ユーザーの資格情報でログインします (これが機能するには、明らかに Windows にログインしている必要があります)。ドメイン、および SSO ライブラリもインストールされている -- これを行う方法については、ディストリビューションの README.SSO を参照してください)。

于 2012-06-27T21:25:40.743 に答える
1

Mac (10.9) で jTDS を使用しています。

このドライバーを使用すると、いつものようにユーザー名とパスワードを指定する必要があります。唯一の違いは、接続文字列 (または必要に応じて接続プロパティ) で domain=WHATEVERTHENTDOMAIN を指定する必要があることです。

したがって、接続文字列の例は次のとおりです。

jdbc:jtds:sqlserver://db_server:1433/DB_NAME;domain=NT_DOMAIN_NAME

次に、jTDS ドライバーは NTLM を使用して、指定されたドメインにユーザー名とパスワードでログインします。

于 2014-03-05T16:35:46.230 に答える
0

jTDS は、Microsoft の JDBC ドライバーよりも劣っています (特に、準備されたステートメント内のパラメーターの型を把握できません)。

はい、Active Directory 認証を使用して MS SQL Server への認証を行うことができます。Active Directory は Kerberos + LDAP であり、オープン ソースであり、Mac に実装されているためです。

ケルベロス構成/etc/krb5.conf:

[libdefaults]
default_realm = YOUR_REALM.NET

[realms]
YOUR_REALM.NET = {
    kdc = host.your-domain.net
}

ドメイン名だけでなく、KDC の完全修飾ドメイン名を使用する必要がありました

JDBC 接続文字列:

jdbc:sqlserver://$host;database=$db;integratedSecurity=true;authenticationScheme=JavaKerberos

$hostの SPN がない場合は、JDBC 接続文字列MSSQLSrv/$hostに追加しますserverSp=$SPN

于 2017-08-02T22:51:04.000 に答える