将当前管理员用户添加到 SQL Server Express 2008

将当前管理员用户添加到 SQL Server Express 2008

我已设法(在“实验”中)从我的 SQL Express 实例中删除我的两个 Windows 用户。我现在以 Windows 管理员身份登录,并重新创建了相应的 SQL 登录,但我无法分配 sysadmin 权限。我收到错误:

用户无权执行此操作。(Microsoft SQL Server,错误:15247)

如果管理员做不到这一点,我是否应该开始寻找一只小动物来献祭?

答案1

您的 Windows 管理员帐户可能没有管理员权限 - 这取决于您的设置。您需要使用具有权限的帐户登录,或者以 sa 用户身份登录。

如果您没有启用 SQL 身份验证,则可以通过注册表调整来激活它。我认为这是正确的密钥:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\<<instance name>>\MSSQLServer\Loginmode

它应该设置为混合模式(2),但当然您仍然需要知道安装实例时的 sa 密码是什么。

答案2

CodePlex 上有一个脚本,可以自动从丢失本地 SQL Server 实例的系统管理员权限中恢复,前提是您有权访问 Windows 管理员帐户:

http://code.msdn.microsoft.com/addselftosqlsysadmin/

答案3

如果您更喜欢使用 SSMS 而不是 sqlcmd/osql,请更新 SQL Server 实例的服务的启动权限以包含“-m”或 -m“Microsoft SQL Server Management Studio - Query”。

然后使用此命令通过命令行进行连接:

sqlcmd -E -S HOSTNAME\INSTANCENAME

或者通过 SSMS 连接:

\\.\pipe\hostname\instancename\sql\query

并使用它来添加您的登录名和角色:

CREATE LOGIN [domain\username] FROM WINDOWS;
GO
EXEC sp_addsrvrolemember 'domain\username', 'sysadmin';
GO

之后,您可以删除服务上的“-m”选项并正常启动它。

http://msdn.microsoft.com/en-us/library/ms188236.aspx了解详情。

相关内容