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

时间:2012-03-21 05:14:55

标签: sql sql-server sql-server-2008 database-permissions

我发现以下情况引发了一条错误,说明由于许可而无法执行该错误:

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

无法在网络上找到有关其所需权限的任何信息。

2 个答案:

答案 0 :(得分:6)

ALTER DATABASE

  

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

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

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

答案 1 :(得分:1)

从管理员帐户中试用:

USE [YOUR_DB]
GO
GRANT ALTER TO your_user
GO

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

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

USE master
GO
GRANT ALTER ANY DATABASE TO your_login
GO