如何使用SQLCMD登录到SQL Server Express,用户没有设置密码
问题描述:
我安装了SQL Server 2012 Express,并且正在从一本关于SQL Server管理的书中学习。我的任务是编写一个批处理文件来从表中复制数据并将其导出到Excel电子表格中。如何使用SQLCMD登录到SQL Server Express,用户没有设置密码
我已经得到实例名称和我的用户名,但由于密码登录失败。当我输入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启用远程连接,但这是本地安装。
答
检查数据库的名称,即“AdventureWorks的”应为“AdventureWorks2012”
答
使用“-E”开关,让您连接的信任(Windows认证)之一,那么你并不需要用户在所有的名称和密码(前提是你有你的机器上有足够的权限)
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()
答
听起来像你正在使用Windows身份验证,您可以删除-u和-p。当那些不提供sqlcmd将使用Windows身份验证。