ユーザ用ツール

サイト用ツール


mssqlserver

MS SQLServer

ちと情報が古いです。

SQL Serverのログインについて

SQL Server 2000の認証方法には、WindowsユーザーアカウントでログインするWindows認証と、DBに固有ユーザを設定するSQL Server認証という2種類の認証方法があります。Microsoftの純正JDBCドライバでは、SQL Server認証のみ使用可能です。(Windows認証可能なサードパーティ製品があるようです)。

「SQL Serverの信頼関係接続に関連付けられていません。」というエラーが出る場合は、SQL Server認証が無効になっています。Enterprise Managerで認証方法を混合モードに設定するとJDBC接続が可能になります。

[HOWTO] Microsoft JDBC の使用方法

saユーザについて

SQL Server認証を有効にするとsaユーザが有効になります。SQL Serverのsaユーザでログインしようとするワームが存在します。必ず最新のパッチを当て、SQL Server認証を使用する場合は必ずsaユーザにパスワードを設定してください。

複製した接続

マニュアルトランザクションモード中は、複製した接続を開始できません。
Cannot Start a Cloned Connection While in Manual Transaction Mode.

上記のSQLExceptionは、自動コミットがオフ(トランザクション有効)の時、Statementを閉じずに、同一のConnectionインスタンスからもう一つStatementをオープンしようとするとスローされる。

String url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=test";
String u = "hoge";
String p = "hogehoge";
 
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection c = DriverManager.getConnection(url, u, p);
c.setAutoCommit(false);
Statement s1 = c.createStatement();
Statement s2 = c.createStatement();  // ここでSQLException

URLを以下のように修正する。ただし、わずかに実行効率が下がる。

jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=test;SelectMethod=cursor

Cannot Start a Cloned Connection While in Manual Transaction Mode

mssqlserver.txt · 最終更新: 2013/06/05 03:00 by nullpon