在SQL Server 2008上运行“ALTER DATABASE SET SINGLE_USER”语句所需的权限

5

我遇到了以下语句因权限问题无法执行并抛出错误的情况:

ALTER DATABASE [{0}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE

我在网上找不到关于它所需权限的任何信息。


你尝试过在数据库上使用ALTER权限吗? - Andrey Gurinov
2个回答

6

ALTER DATABASE

需要对数据库具有 ALTER 权限。

一些特定的 SET 权限列在ALTER DATABASE SET options中:

  • EMERGENCY: 要将数据库更改为脱机或应急状态,需要对该数据库具有 ALTER DATABASE 权限。要将数据库从脱机状态更改为联机状态,则需要服务器级别的 ALTER ANY DATABASE 权限。
  • DB_CHAINING: 若要设置此选项,则需要对数据库具有 CONTROL SERVER 权限。
  • TRUSTWORTHY: 若要设置此选项,则需要对数据库具有 CONTROL SERVER 权限。

1

尝试从管理员账户执行以下操作:

USE [YOUR_DB]
GO
GRANT ALTER TO your_user
GO

但请注意,登录必须在指定的数据库中具有用户。

或者,如果您想在服务器上的每个数据库上授予此权限,则可以在服务器级别向登录授予权限:

USE master
GO
GRANT ALTER ANY DATABASE TO your_login
GO

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接