5

当以下语句引发错误说由于权限而无法执行时,我遇到了这种情况:

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

在网络上的任何地方都找不到有关所需权限的任何信息。

4

2 回答 2

6

ALTER DATABASE

需要对数据库的 ALTER 权限。

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

  • EMERGENCYALTER DATABASE将数据库更改为脱机或紧急状态需要主题数据库的权限。ALTER ANY DATABASE将数据库从脱机移动到联机需要服务器级别的权限。
  • DB_CHAINING:要设置此选项,需要CONTROL SERVER对数据库的权限。
  • 值得信赖:要设置此选项,需要CONTROL SERVER对数据库的权限。
于 2012-03-21T05:39:07.513 回答
1

从管理员帐户试试这个:

USE [YOUR_DB]
GO
GRANT ALTER TO your_user
GO

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

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

USE master
GO
GRANT ALTER ANY DATABASE TO your_login
GO
于 2012-03-21T05:33:25.297 回答