我有一台安装了 SQL Server 2008 并允许远程连接的远程 PC。
我是 PC 上的管理员用户,已远程连接到 SQL Server,我正在尝试从备份中恢复数据库,但我在服务器上尝试执行的任何操作都被拒绝权限!
我可以将自己添加为 SQL 数据库的登录名,但只能具有公共服务器角色!
服务器设置为以本地帐户登录,并且我也正在运行 SQL Server 浏览器!
我做错了什么或者错过了什么?
答案1
听起来您登录的帐户没有执行这些选项的权限。要授予自己这些权限,您需要以管理员身份或 SA 帐户登录(如果启用了混合模式)。
当您以管理员身份登录时,您应该能够为自己分配适当的权限,以便能够使用您自己的用户帐户恢复数据库。
答案2
解决方案,这对我很有用,由作者 Blipsolt 发布:
从服务关闭 SQL Server
打开 cmd 窗口(以管理员身份)并使用此命令以本地管理员身份运行单用户模式
c:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Binn\sqlservr.exe" -m -s SQLEXPRESS
打开另一个 cmd 窗口(以管理员身份)
打开 sqlcmd
sqlcmd-S .\SQLEXPRESS 复制代码
现在添加 sysadmin 用户:
sp_addsrvrolemember'域\用户','sysadmin'
去
Ctrl+C
从第一个 cmd 窗口进入单用户模式来终止 SQL Server。以正常方式从服务重新启动它。
登录管理工作室,您创建的用户应该以“sysadmin”凭证列在登录下。
答案3
SQL 2008 更改了默认权限检查这个微软
您遇到的情况可能如下: “默认情况下,本地 Windows 组 BUILTIN\Administrator 不再包含在新 SQL Server 2008 安装中的 SQL Server sysadmin 固定服务器角色中。”
答案4
值得一提的是,即使我的域帐户具有本地计算机管理员权限,但由于权限不足(正如本主题中的其他人更详细地说明的那样),我登录后也无法做任何有用的事情。我必须以本地计算机管理员帐户身份注销并重新登录,使用 Windows Auth 进入 SQL,并为我的域用户帐户添加 SQL 登录名并为其设置 sysadmin 角色。然后我使用我的域帐户重新登录,然后我就拥有了使用 Windows Auth 创建数据库、管理安全性等的完整权限。
如果可以的话,我建议安装具有混合模式的 SQL 2008 并设置 SA 密码,至少直到您进入并为您的环境进行配置。