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

我pipe理(在'eksperiments')从我的SQL Express实例中删除我的Windows用户。 我现在login为Windowspipe理员,并已重新创build相应的SQLlogin,但我不能分配系统pipe理员权限。 我得到的错误:

用户没有执行此操作的权限。 (Microsoft SQL Server,错误:15247)

如果pipe理员不能做到这一点,我应该开始寻找一个小动物牺牲?

您的Windowspipe理员帐户可能没有pipe理员权限 – 这取决于您设置的内容。 您需要使用具有权限的帐户login,或者以sa用户身份login。

如果您没有启用SQL身份validation,您可以通过registry调整来激活它。 我认为这是正确的关键:

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

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

如果您有权访问Windowspipe理员帐户,则CodePlex上有一个脚本可以自动从系统pipe理员权限恢复到本地SQL Server实例中进行恢复:

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

如果您希望在sqlcmd / osql上使用SSMS,请更新SQL Server实例的服务的启动权限以包含“-m”或-m“Microsoft SQL Server Management Studio – 查询”。

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

 sqlcmd -E -S HOSTNAME\INSTANCENAME 

或通过SSMS连接到:

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

并使用此来添加您的login和angular色:

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

在您可以删除服务上的'-m'选项并正常启动之后。

有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms188236.aspx