2017-12-04 17 views
1

SQL Server(2012以降)Standard EditionにSSISを使用すると、Windows認証を使用してリモートOracleデータベースに接続したいと考えています。ユーザーIDを指定するときに、接続 に成功した(ADO.NETやOLE DB接続マネージャのいずれかを使用して)SSISで
ます。sqlplus/@ MyRemoteConnectionWindows認証を使用したOracleへのSSIS接続

、および:私のテストでは

、SQLPLUSを使用している場合、これは正常に動作しますパスワード。 SSIS接続で「/」ユーザー(パスワードなし)を指定すると接続が失敗します。

OracleへのSSIS接続では、Windowsによる認証はサポートされていますか?
「はい」の場合はどうすればよいですか?

Windows認証がサポートされていない場合、SQL Server Standard Editionからの接続を可能にする他のツールがあります(Attunityを使用できないなどの理由があります)。

すべての提案が高く評価されています!

+0

Oracleドライバを試しましたか? –

+0

この記事を見てください。 http://www.itprotoday.com/security/implementing-windows-authentication-oracleこれは古い記事ですが、AD for Oracleのセットアップ方法について説明しています。幸運にも... –

+0

@Jacob H:はい、私はMicrosoftとOracleの両方の接続マネージャーを試してみました(そして、私はOracle Instant Clientをインストールしました) –

答えて

1

はい、SQL Server Standard EditionからOracleへのWindows認証がサポートされています。 (たとえば、Visual Studioの(SSIS)、またはSQL Server Management Studioでインポートウィザードを使用して)

有効ADO.NET接続文字列は次のようになります。

Data Source=<host name>:<port number>/<database name>;Integrated Security=SSPI; 

例:

Data Source=my_host_name.com:1521/ORCL;Integrated Security=SSPI; 

Windows認証の場合、 "統合セキュリティ" を "yes"、 "True"または "SSPI"に設定する必要があります。

有効なOLE DB接続文字列は次のようになります。

Data Source=<host name>:<port number>/<database name>;User ID=/Provider=OraOLEDB.Oracle.1; 

例:ポート番号は任意であり をしている場合、標準のポート番号(通常は省略することができます。

Data Source=my_host_name.com:1521/ORCL;User ID=/Provider=OraOLEDB.Oracle.1; 

ますのでご注意ください1521)が用いられる。 SSISを使用している場合、接続マネージャーはメッセージに文句を付ける可能性があります。 「指定されたパスの形式はサポートされていません。 これは、接続文字列にポート番号が指定されている場合に発生します。 接続文字列(ポート番号も含む)は、接続文字列が式の変数で満たされても機能します。

さらに要件:

たファイル・システム上(クライアントとサーバーの両方で)、sqlnet.oraファイルを存在することがあります。
このファイルには、文字列にデータベースサーバーで

SQLNET.AUTHENTICATION_SERVICES= (NTS) 

が含まれている必要があり、完全なOracleクライアントを使用する場合、 sqlnet.oraファイルは、ORACLE_HOME \ネットワーク\ Adminディレクトリに配置する必要があります。インスタントクライアントがインストールされている場合
ORACLE_HOMEが正常に
HKEY_LOCAL_MACHINE \ソフトウェアの\のORACLE

の下に、レジストリで定義されている、ファイルのsqlnet.oraはどこディレクトリの下に「ネットワーク\管理」サブディレクトリに置くことができますInstant Clientが配置されます。 インスタント・クライアントは、ORACLE_HOMEを使用(または評価)するためにレジストリを検索しません。 したがって、そこにあるsqlnet.oraファイルは、Oracleサーバーに接続しようとすると読み取られません。
(これが私の接続が常に失敗する理由です)

環境変数TNS_ADMINを設定することによって、sqlnet.oraのディレクトリを指定することもできます。 Windowsのコントロールパネルにあります。 例: TNS_ADMIN = C:¥TNS_ADMIN
次に、sqlnet.oraファイルをこのディレクトリに配置します。

Oracleサーバーでは、Windowsユーザーが存在する必要があります。 例:

create user "OPS$MYDOMAIN\MY_USER_NAME" identified externally; 
grant create session, alter session to "OPS$MYDOMAIN\MY_USER_NAME"; 

(。追加の権限が必要な場合があります)

そして、Windows認証を使用して、WindowsユーザーMY_USER_NAME、 としてOracleに接続することが可能なはずです。

関連する問題