为什么我不能使用osql更改sa密码?

时间:2017-03-02 18:30:09

标签: sql-server windows osql sa

我有一台已经安装了SQL Server Express的笔记本电脑。服务器名称为 SRH \ SQLEXPRESS ,版本为 10.0.2531.0 。操作系统是Windows 7。

我可以通过Windows身份验证连接到它。但我想通过sa连接到它。由于我不知道sa的密码所以我想重置它。我决定使用osql更改它。

以下是我更改sa

密码的步骤
  1. 我在管理员模式下打开了命令提示符(cmd)。
  2. 我输入osql -S SRH\SQLEXPRESS -E并按Enter键。
  3. 然后我收到 1> 提示。然后我输入sp_password null, 'HseWork11', 'sa'并按Enter键。
  4. 然后我收到 2> 提示。然后我输入GO并按Enter键 键,但我收到此错误消息:
  5.   

    消息15151,级别16,状态1,服务器SRH \ SQLEXPRESS,第1行不能   更改登录'sa',因为它不存在或您没有   权限。

    无赖。

    要确认登录sa存在,我通过Windows身份验证连接并运行此语句select * from sys.syslogins where name = 'sa'。我有1行,所以登录sa存在。

    为什么我无法使用sa更改osql密码?我做错了什么?

2 个答案:

答案 0 :(得分:1)

您是否尝试使用sp_password,而不是使用ALTER LOGIN?我使用UNLOCK代替sqlcmd - 我实际上并不知道这是否有所作为。

在命令提示符中:

osql

这些显然是不同的命令,我知道有时候sqlcmd -S .\SQLEXPRESS >1 ALTER LOGIN sa WITH PASSWORD = ‘whateveryouwant’ UNLOCK >2 GO >3 exit 对我来说有用ALTER LOGIN没有。我不相信这是万灵药,但值得一看。

旁注:

如果这不起作用,但你仍然可以连接到SQL Server(你说你可以,而不是SA),那么运行这个查询以查看谁可以以管理员身份访问SQL Server。也许你有一个内置的帐户给了那个角色......

sp_password

这将为您提供具有SysAdmin角色的SQL Server和Windows用户。

首先编辑:

您说在运行此查询后,USE Master GO SELECT P.Name ,P.Type_desc ,P.is_disabled FROM sys.server_principals P INNER JOIN sys.syslogins L ON L.SID = P.SID WHERE P.Name NOT LIKE '#%' AND L.SysAdmin = 1 ; 帐户的is_disabled被标记为1

返回到命令提示符并尝试以下操作:

SA

答案 1 :(得分:1)

您可能不是Windows登录时SQL Server实例中的系统管理员。如果您具有系统管理员权限,则应该能够更改sa登录的密码。

请参考 Wikihow

注意:OSQL已停用,请使用SQLCMD。