1

SQL Server 2012 Expressをインストールし、SQLServerの管理に関する本から学んでいます。私の仕事は、テーブルからデータをコピーしてExcelスプレッドシートにエクスポートするバッチファイルを作成することです。

インスタンス名とユーザー名は正しいのですが、パスワードが原因でログインに失敗します。Management Studioに入り、[接続]をクリックすると、ユーザー名は表示されますが、パスワードが空白になります。この方法でデータベースに正常に接続できます。アカウントのパスワードを設定するにはどうすればよいですか?この設定がないため、SQLCMDを使用してログインできないと思います。私のユーザー名はWindowsのユーザー名と同じですが、Windowsにログオンするときに使用したパスワードを使用しても機能しません。

SQLCMD -S CRAIG-PC\SQLExpress -U CRAIG-PC\Craig -P ********* 
       -d AdventureWorks 
       -Q "SELECT * FROM Sales.SalesOrderDetail" -o C:\ExportDir\export.csv

これは、データベースに接続してクエリを実行しようとしているバッチファイル内のコマンドです。私が取り出す -P *******と、SQLServerはパスワードを待っています。ユーザー名またはパスワードを使用しない場合、接続は拒否されます。

リモート接続はtcpを使用して有効になりますが、これはローカルインストールです。

4

3 に答える 3

1

'-E'スイッチを使用して、接続を信頼できる(ウィンドウの認証)接続にします。そうすれば、ユーザー名とパスワードはまったく必要ありません(マシンに十分な権限がある場合)。

http://technet.microsoft.com/en-us/library/ms162773.aspx

以下のPythonコードでは、ユーザーまたはパスワードを実装していないことに注意してください。

お役に立てば幸い

    _query = "CREATE DATABASE %s ON (FILENAME = '%s'), (FILENAME = '%s') FOR ATTACH;" %(_database, mdffilepath, logfilepath)

    command_process = SubP.Popen(['sqlcmd','-b', '-E',
                              '-S', _server,
                              '-d', 'master',
                              '-q', _query],
                             stdin = SubP.PIPE,
                             stdout = SubP.PIPE, 
                             stderr = SubP.STDOUT, 
                             shell = True)

    _stdOut, _stdError = command_process.communicate()
于 2014-01-29T22:54:59.050 に答える
0

データベースの名前を確認します。つまり、「AdventureWorks」は「AdventureWorks2012」である必要があります

于 2013-03-24T07:20:40.817 に答える
0

Windows認証を使用しているようですが、-uと-pを削除できます。それらが提供されていない場合、sqlcmdはWindows認証を使用します。

于 2014-05-08T20:09:29.777 に答える