none
为什么会在修改sa权限的时候发生错误? RRS feed

  • 问题

  • 在日常数据库的使用中,经常需要对用户权限进行更改。但是,经常有用户在使用这个命令的时候发生如下的报错信息:
    Error : Msg 15151, Level 16, State 1, Line 2 Cannot alter the login ‘sa’, because it does not exist or you do not have permission
    为什么会出现这个错误信息,我们应该如何解决呢?
    2012年1月16日 4:41
    版主

答案

  • 通过错误信息的描述,我们可以清楚了解到,用户正在更改sa的权限,但是实际上,我们无法对SA进行授予、拒绝或撤消权限。
    System Administrators(sa)是一个内置的管理员登录用户,在SQL Server的用户中处于最高级别。在默认情况下属于sysadmin固定服务器角色并且权限无法被更改。 
    但是我们可以使用以下命令使sa生效或者失效:
    /* Disable SA Login */
     ALTER LOGIN [sa] DISABLE
     GO
     /* Enable SA Login */
     ALTER LOGIN [sa] ENABLE
     GO
    所以,鉴于sa的特性,我们应该在数据库使用过程中尽量避免使用sa。如果我们需要sysadmin权限的用户,我们可以新建立或者将已有的用户添加到sysadmin固定服务器角色中,使其成为和SA权限相同,并且可以更改的用户。
    2012年1月16日 4:42
    版主