5

我正在使用 SQL Management Studio 2008 Express 作为本地 SQL Server 2008 Express 实例的图形界面,这两个实例在本地仅用作我的 Web 项目的测试和开发界面。

我最近对 ​​SQL 编码更有信心,并开始使用一些更复杂的 sql 东西——我最新的探索领域是触发器。但是,令我惊讶的是,我的服务器实例似乎没有管理员权限,这意味着我不能做简单的事情,比如调试或更改访问权限。

当我尝试开始调试时,我收到一条权限被拒绝消息,当我尝试管理不同数据库的权限规则时,我也看到了它。我怀疑这与我在安装服务器时选择的某些选项有关,但是由于我已经设置了多个数据库并填充了数据,因此我不想卸载并重新安装整个东西。

有什么方法可以更改哪个用户帐户是服务器实例的主管理员?如果没有,是否有任何其他方法可以获得例如调试我的触发器的权限?

4

2 回答 2

5

以本地管理员帐户登录您的计算机。默认情况下,这应该是 MSSQL 中的系统管理员角色。

使用 SSMS,使用集成身份验证连接到您的 MSSQL 实例。您现在是系统管理员。作为系统管理员,您现在可以将普通用户帐户添加到系统管理员角色

EXEC sp_addsrvrolemember @loginame = 'PC_OR_DOMAIN\loginname', @rolename = 'sysadmin'

如果您使用 SSPI(又名集成身份验证,也就是启动 SSMS 时没有不同的用户名和密码),那么只需使用您的 Windows 登录名作为登录名。如果您使用 Sql Server 身份验证(又名用户名和密码),则使用用户名作为登录名。如果您使用任何其他登录名,也会创建一个帐户。

在 GUI 中肯定有一种方法可以做到这一点 - 但我没有方便的 ATM 来告诉你如何做。我认为它在 Security -> Logins -> Properties 和一些用于各种服务器角色的复选框下。

编辑:在 Vista 上启用本地管理员帐户 此外,如果您本地管理员(您的用户帐户列在本地管理员组下),那么 -默认情况下- 您是系统管理员。可能值得仔细检查系统管理员角色 (SQL) 和本地管理员组 (Vista) 的成员。

Edit2:原来,SQL 2008不再添加BUILTIN\Administators这种情况下,您需要检查您添加的内容。这应该可以通过 Logins 节点获得。请注意,如果您不选择 sysadmin 登录,您可能会被锁定在 MSSQL Admin 之外。如果是这种情况,我会重新安装。您可以通过停止 MSSQL 并复制 *.MDF 和 *.LDF 文件来保存数据库。重新安装后,将它们复制回来并使用 sp_attach_db 重新附加它们。

于 2009-04-19T00:15:28.627 回答
0

Sql 服务器配置管理器。

这将允许您设置实例帐户。

但是,我认为您可能需要将数据库所有者更改为您连接到数据库的用户。如果您使用的是 SSPI,那么这将是您的登录用户,或者如果您使用 SQL 身份验证,这将是连接字符串中的用户。

额外的:

如果您在 Windows XP 或更高版本上进行调试,并且您不是管理员(本地),则需要将您放入该系统上的“调试用户”组。否则访问内存或将调试器附加到您不拥有的进程是一个很大的禁忌。

于 2009-04-18T23:41:26.197 回答