为什么我无权更改此 SQL Server Express 2005 密码?

发布于 2024-08-18 08:39:58 字数 506 浏览 4 评论 0原文

我可以访问 SQL 2005 Express 的安装。可能是我前段时间自己安装的。但有一段时间没有使用它了。

我尝试通过通常用于此类本地安装的“sa”密码来访问此实例。

然而这个密码不起作用。

我仔细检查了混合模式身份验证是否已设置并且 sa 用户是否存在。

我可以通过 Windows 身份验证访问该实例并查询数据库(甚至是主数据库)。没问题。

然后我尝试使用此 sql 重置 sa 密码:

ALTER LOGIN sa WITH PASSWORD = 'MyNewPassword';

它立即失败并出现以下错误:

Cannot alter the login 'sa', because it does not exist or you do not have permission.

那么为什么我的本地 Windows 用户无权执行此操作?

I have access to an installation of SQL 2005 Express. I probably installed it myself some time ago. But haven't used it in a while.

I tried to access this instance via an 'sa' password I typically use for such local installs.

However this password did not work.

I double checked that mixed mode authentication is setup and that the sa user exists.

I can access the instance via windows authentication and query the heck out of the DB's (even master). No problem.

Then I tried to reset the sa password using this sql:

ALTER LOGIN sa WITH PASSWORD = 'MyNewPassword';

It promptly fails with this error:

Cannot alter the login 'sa', because it does not exist or you do not have permission.

So why does my local Windows user not have permission to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

赤濁 2024-08-25 08:39:58

您是否按照这些步骤操作?

您是否已登录作为最初安装该服务的同一管理员用户,还是本地管理员?能够阅读是一种许可级别。能够更改数据,尤其是服务器级对象是另一组权限。仅仅因为你能读并不意味着你就能写。

如果使用不同的管理员登录失败,您始终可以使用 恢复工具

Have you followed these steps?

Are you logged in as the same admin user who installed the service in the first place, or local admin? Being able to read is one level of permission. Being able to change data and especially server-level objects is another set of permissions. Just because you can read does not mean you're going to be able to write.

If using different admin logins fails, you could always hack your sa password with a recovery tool

忘东忘西忘不掉你 2024-08-25 08:39:58

我知道这是一篇较旧的帖子,但我在寻找自己问题的答案时仍然找到了它。

这里有 2 个选项:

  1. 单用户模式
  2. 使用 NT Authority\System 的

​​PSExec 选项 1:(来自博客文章)

  • 在托管数据库的计算机上打开 SQL Server 配置管理器
  • 单击 SQL Server 服务
  • 单击所需的 SQL Server 实例,然后单击右键单击“转到属性”
  • 在“高级”表上输入参数“-m;”在启动参数框中的现有参数之前。
  • 现在使用 SQLCmd 将具有 Sysadmin 权限的新用户添加到数据库
    • 这篇 technet 博客文章对于获取所需的 SQLCmd 命令和语法非常有用
    • 打开命令提示符并将目录更改为“BINN”文件夹
    • 通常位于C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn
    • 此位置会根据您的配置而变化
    • 使用以下命令调用 SQLCmd:
    • SQLCMD –S <服务器名称\实例名称>
    • 在我的例子中,这是SQLCMD -S SPExternal\Sharepoint - 我的计算机名称\数据库实例名称
    • 现在使用以下命令序列创建新的系统管理员登录名:
    • 每行后按 Enter

<代码>1>创建登录“”与 PASSWORD='<密码>'

<代码>2>去

1>SP_ADDSVROLEMEMBER '','SYSADMIN'`

2>走

最后,通过反转上述最初 4 个步骤,使服务器退出单用户模式。使用新登录名进行连接。

选项 2:使用 PSExec 以 NT 身份登录Authority\System

  • 下载 PSExec.exe 并放入Windows\System 32
  • 以管理员身份打开命令提示符
  • 使用以下命令在托管 SQL 数据库的计算机上从命令提示符执行 SSMS
    • PsExec -s -i "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe"
    • 请注意,SSMS 的路径可能会有所不同,具体取决于您的系统配置
  • 上面链接的原始文章中还列出了一些其他注意事项
    • UAC 可能需要禁用(对我来说工作正常,但仍然启用)
    • 您的帐户需要是此项工作的本地管理员
    • 可能会也可能不会远程工作

选项 2 是 最初在此 DBA SE 答案中引用 - 感谢找到它的人。

I know that this is an older post, but I still found it while searching for an answer to my own question.

2 options here:

  1. Single User Mode
  2. PSExec using NT Authority\System

Option 1: (from blog post)

  • Open SQL Server Configuration Manager on the machine that is hosting the database
  • Click on SQL Server Services
  • Click on desired SQL Server instance and right click go to properties
  • On the Advance table enter param ‘-m;‘ before existing params in Startup Parameters box.
  • Now use SQLCmd to add a new user to the database that has Sysadmin privileges
    • This technet blog post is very useful for getting the needed SQLCmd commands and syntax
    • Open command prompt and change directory to the "BINN" folder
    • Usually located at C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn
    • This location changes depending upon your configuration
    • Use the following command to invoke SQLCmd:
    • SQLCMD –S <Server_Name\Instance_Name>
    • In my case this was SQLCMD -S SPExternal\Sharepoint - my machine name \ database instance name
    • Now use the following command sequence to create a new sys admin login:
    • Press enter after each line

1> CREATE LOGIN ‘<Login_Name>’ with PASSWORD=’<Password>’

2> go

1>SP_ADDSRVROLEMEMBER '','SYSADMIN'`

2>go

Lastly, take the server out of single user mode by reversing the initial 4 steps outlined above. Connect using the new login.

Option 2: Use PSExec to login as NT Authority\System

  • Download PSExec.exe and place into Windows\System 32
  • Open the command prompt as the administrator
  • Execute SSMS from the command prompt on the machine hosting the SQL database using the following command
    • PsExec -s -i "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe"
    • Note that the path to SSMS may be different depending on the configuration of your system
  • There are a few other caveats listed in the original article linked above
    • UAC may need to be disabled (worked Ok for me still enabled)
    • Your account needs to be a local admin for this work
    • May or may not work remotely

Option 2 was originally referenced in this DBA SE answer - thanks to the person who found it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文