我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实例中进行恢复:
如果您希望在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 。