我新建了一个帐号,并分配了权限,请问禁用这个帐号,让他不能登录,但保留该帐号的所在权限设置

解决方案 »

  1.   

    更改 SQL Server 登录帐户的属性。 Transact-SQL 语法约定语法
     
    ALTER LOGIN login_name 
        { 
        <status_option> 
        | WITH <set_option> [ ,... ] 
        } <status_option> ::=
            ENABLE | DISABLE<set_option> ::=            
        PASSWORD = 'password' 
        [ 
                OLD_PASSWORD = 'oldpassword' 
          | <secadmin_pwd_opt> [ <secadmin_pwd_opt> ] 
        ]
        | DEFAULT_DATABASE = database
        | DEFAULT_LANGUAGE = language
        | NAME = login_name
        | CHECK_POLICY = { ON | OFF }
        | CHECK_EXPIRATION = { ON | OFF }
        | CREDENTIAL = credential_name
        | NO CREDENTIAL
      <secadmin_pwd_opt> ::= 
        MUST_CHANGE | UNLOCK
     参数
    login_name 
    指定正在更改的 SQL Server 登录的名称。ENABLE | DISABLE
    启用或禁用此登录。PASSWORD = 'password'
    仅适用于 SQL Server 登录帐户。指定正在更改的登录的密码。OLD_PASSWORD = 'oldpassword'
    仅适用于 SQL Server 登录帐户。要指派新密码的登录的当前密码。密码是区分大小写的。MUST_CHANGE 
    仅适用于 SQL Server 登录帐户。如果包括此选项,则 SQL Server 将在首次使用已更改的登录时提示输入更新的密码。DEFAULT_DATABASE = database
    指定将指派给登录的默认数据库。DEFAULT_LANGUAGE = language
    指定将指派给登录的默认语言。 NAME = login_name
    正在重命名的登录的新名称。如果是 Windows 登录,则与新名称对应的 Windows 主体的 SID 必须匹配与 SQL Server 中的登录相关联的 SID。SQL Server 登录的新名称不能包含反斜杠字符 (\)。CHECK_EXPIRATION = { ON | OFF }
    仅适用于 SQL Server 登录帐户。指定是否对此登录帐户强制实施密码过期策略。默认值为 OFF。CHECK_POLICY = { ON | OFF }
    仅适用于 SQL Server 登录帐户。指定应对此登录帐户强制实施运行 SQL Server 的计算机的 Windows 密码策略。默认值为 ON。CREDENTIAL = credential_name
    将映射到 SQL Server 登录的凭据的名称。该凭据必须已存在于服务器中。NO CREDENTIAL
    删除登录到服务器凭据的当前所有映射。UNLOCK 
    仅适用于 SQL Server 登录帐户。指定应解锁被锁定的登录。备注
    如果 CHECK_POLICY 更改为 ON,则将出现以下行为:CHECK_EXPIRATION 也设置为 ON,除非它被显式设置为 OFF。
    密码历史使用当前的密码哈希值初始化。
    如果 CHECK_POLICY 更改为 OFF,则将出现以下行为:CHECK_EXPIRATION 也设置为 OFF。
    清除密码历史。
    lockout_time 的值被重置。
    如果指定 MUST_CHANGE,则 CHECK_EXPIRATION 和 CHECK_POLICY 必须设置为 ON。否则,该语句将失败。如果 CHECK_POLICY 设置为 OFF,则 CHECK_EXPIRATION 不能设置为 ON。包含此选项组合的 ALTER LOGIN 语句将失败。重要事项:  
    只有在 Windows Server 2003 及更高版本上才会强制执行 CHECK_EXPIRATION 和 CHECK_POLICY。有关详细信息,请参阅密码策略。
     重要事项:  
    Windows Server 2003 中的一个已知问题可能会阻止错误密码计数在达到 LockoutThreshold 后重置。这可能会导致当后续登录尝试失败后立即锁定。可以通过暂时设置 CHECK_POLICY = OFF,然后设置 CHECK_POLICY = ON 来手动重置错误的密码计数。
     
    权限
    需要 ALTER ANY LOGIN 权限。如果使用 CREDENTIAL 选项,则还需要 ALTER ANY CREDENTIAL 权限。 如果登录名是 sysadmin 固定服务器角色的成员或 CONTROL SERVER 权限的被授权者,则进行以下更改时还需要 CONTROL SERVER 权限: 在不提供旧密码的情况下重置密码。 
    启用 MUST_CHANGE、CHECK_POLICY 或 CHECK_EXPIRATION。 
    更改登录名。 
    启用或禁用登录。 
    将登录映射到其他凭据。
    主体可更改用于自身登录的密码、默认语言以及默认数据库。示例
    A. 启用已禁用的登录
    以下示例将启用 KittiLert 登录。 复制代码 
    ALTER LOGIN KittiLert ENABLE;
     B. 更改登录密码
    以下示例将 KittiLert 登录密码更改为 3948wJ698FFF7。 复制代码 
    ALTER LOGIN KittiLert WITH PASSWORD = '3948wJ698FFF7';
     C. 更改登录名称
    以下示例将 KittiLert 登录名称更改为 MacraeS。 复制代码 
    ALTER LOGIN KittiLert WITH NAME = MacraeS;
     D. 将登录名映射到凭据
    以下示例将登录名 MacraeS 映射到凭据 Custodian04。 复制代码 
    ALTER LOGIN MacraeS WITH CREDENTIAL = Custodian04;
     
      

  2.   

    use master
    go
    ALTER LOGIN test DISABLE
    go报错:
    服务器: 消息 170,级别 15,状态 1,行 1
    第 1 行: 'LOGIN' 附近有语法错误。