如何使用SQLCMD登录SQL Server Express,用户无密码设置

时间:2013-03-24 06:47:55

标签: sqlcmd

我安装了SQL Server 2012 Express,我正在学习一本关于SQL Server管理的书。我的任务是编写一个批处理文件来复制表中的数据并将其导出到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 ******* SQL Server正在等待密码。如果我不使用用户名或密码,则拒绝连接。

使用tcp启用远程连接,但这是本地安装。

3 个答案:

答案 0 :(得分:1)

使用'-E'开关使您的连接成为受信任的(Window的身份验证),然后您根本不需要用户名和密码(前提是您拥有足够的权限)

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()

答案 1 :(得分:0)

检查数据库的名称,即“AdventureWorks”应为“AdventureWorks2012”

答案 2 :(得分:0)

听起来您正在使用Windows身份验证,您可以删除-u和-p。如果没有提供,sqlcmd将使用Windows身份验证。