修改登陆账户信息注意事项

如果 CHECK_POLICY设置为ON,则无法使用 HASHED参数。

如果 CHECK_POLICY更改为ON,则将出现以下行为:

  • 用当前的密码哈希值初始化密码历史记录。

    如果 CHECK_POLICY 更改为 OFF,则将出现以下行为:

  • CHECK_EXPIRATION 也设置为 OFF。

  • 清除密码历史记录。

  • 重置 lockout_time 的值。

如果指定MUST_CHANGE,则CHECK_EXPIRATION和CHECK_POLICY必须设置为ON。 否则,该语句将失败。

如果CHECK_POLICY设置为OFF,则CHECK_EXPIRATION不能设置为ON。 包含此选项组合的 ALTER LOGIN 语句将失败。

不能使用带DISABLE 参数的ALTER_LOGIN来拒绝对Windows 组的访问。 例如,ALTER_LOGIN [domain\group] DISABLE将返回下列错误信息:

"消息 15151,级别 16,状态 1,第 1 行"

"无法更改登录名 'Domain\Group',因为它不存在,或者你没有相应权限。"

这是设计的结果。

在SQL Database中,对连接和服务器级别的防火墙规则进行身份验证时所需的登录数据会暂时缓存在每个数据库中。 此缓存定期刷新。 若要强制刷新身份验证缓存并确保数据库具有最新版本的登录名表,请执行DBCC FLUSHAUTHCACHE (Transact-SQL)。

需要ALTER ANY LOGIN权限。

如果使用CREDENTIAL选项,则还需要ALTER ANY CREDENTIAL权限。

如果正在更改的登录名是sysadmin固定服务器角色的成员或CONTROL SERVER权限的被授权者,则进行以下更改时还需要CONTROL SERVER权限:

  • 在不提供旧密码的情况下重置密码。

  • 启用MUST_CHANGE、CHECK_POLICY或CHECK_EXPIRATION。

  • 更改登录名。

  • 启用或禁用登录名。

  • 将登录名映射到其他凭据。

    主体可更改用于自身登录的密码、默认语言以及默认数据库。

使用SSMS数据库管理工具修改登陆账户信息

1、连接数据库-》展开安全性-》展开登陆名-》选择要修改的登陆账户-》右键点击-》选择属性。

2、在登陆属性弹出框-》点击常规-》修改登陆名、密码、证书、映射到凭据、默认数据库、语言等。

3、在登陆属性弹出框-》点击服务器角色-》修改服务器角色(数据库角色指定了可以访问相同数据库对象的一组数据库用户)。

4、在登陆属性弹出框-》点击服务器角色-》修改用户映射(登录名用于授权并访问服务器资源,如果需要访问数据库,需要对数据库内部的用户进行映射。用户是数据库级别的安全主体,访问数据库资源是授予给用户,而不是登录名。)。

5、在登陆属性弹出框-》点击安全对象-》修改数据库安全对象和安全对象权限(安全对象,是SQL Server 数据库引擎授权系统控制对其进行访问的资源。通俗点说,就是在SQL Server权限体系下控制的对象,因为所有的对象(从服务器,到表,到视图触发器等)都在SQL Server的权限体系控制之下,所以在SQL Server中的任何对象都可以被称为安全对象)。

6、在登陆属性弹出框-》点击状态-》修改登陆账户状态(禁用用户登陆或者连接数据库)。

使用T-SQL脚本修改登陆账户信息

启用或禁用此登录名

语法

--声明数据库引用
use database_name;
go--创建登录用户
alter login login_name { enable | disable }
go

语法解析

--database_name
--数据库名
--login_name
--指定正在更改的SQL Server登录名的名称。 域登录名必须用方括号括起来,其格式为[domain\user]。
--enable | disable
--启用或禁用此登录名。 禁用登录名不会影响已连接登录名的行为。 
--(使用 KILL 语句终止现有连接。)禁用的登录名将保留它们的权限,且仍然可以模拟。

示例

--声明数据库引用
use testss;
go--创建登录用户
alter login testuser
disable
go

示例结果

更改登录帐户的属性

语法

--声明数据库引用
use database_name;
go--修改登录账户属性
alter login login_name
with
password={ 'password' | hashed_password hashed [old_password='oldpassword' [must_change | unlock] ]}[,]
default_database=database[,]
default_language=language[,]
name=login_name[,]
check_policy={ on | off }[,]
check_expiration={ on | off }[,]
credential=credential_name[,]
no credential[,]
add credential credential_name[,]
drop credential credential_name    

语法解析

--database_name
--数据库名称

--login_name
--指定正在更改的SQL Server登录名的名称。 域登录名必须用方括号括起来,其格式为 [domain\user]。

--password='password*' 
--仅适用于SQL Server登录名。指定正在更改的登录名的密码。密码是区分大小写的。
--与SQL数据库持续保持活动连接需要至少每隔10小时进行重新授权(由数据库引擎执行)。 
--数据库引擎使用最初提交的密码尝试重新授权,且无需用户输入。出于性能原因,在SQL数据库中重置密码时,连接将不会重新进行身份验证,即使该连接因连接池而重置。 
--这与本地SQLServer的行为不同。如果自最初授权连接时已更改密码,则必须终止连接,并使用新密码建立新连接。具有KILL DATABASE CONNECTION权限的用户可使用KILL命令,显式终止与SQL数据库的连接。

--password=hashed_password
--仅适用于HASHED关键字。指定要创建的登录名的密码的哈希值。
--hashed
--仅适用于SQL Server登录名。 指定在PASSWORD参数后输入的密码已经过哈希运算。 
--如果未选择此选项,则在将密码存储到数据库之前,对其进行哈希运算。此选项只能用于在两台服务器之间同步登录名。 切勿使用HASHED选项定期更改密码。
--old _password='oldpassword'
--仅适用于SQL Server登录名。要指派新密码的登录的当前密码。密码是区分大小写的。

--must_change 
--适用范围: SQL Server 2008 到 SQL Server 2017、并行数据仓库。
--仅适用于SQL Server 登录名。 如果包括此选项,则SQL Server将在首次使用已更改的登录名时提示输入更新的密码。

--unlock
--适用范围:SQL Server 2008到SQL Server 2017、并行数据仓库。
--仅适用于SQL Server登录名。 指定应解锁被锁定的登录名。

--default_database=database
--适用范围:SQL Server 2008到SQL Server 2017。
--指定将指派给登录名的默认数据库。

--default_language=language
--适用范围: SQL Server 2008 到 SQL Server 2017。
--指定将指派给登录名的默认语言。 所有SQL数据库登录名的默认语言为英语,并且无法更改。 
--Linux上SQL Server的sa登录名的默认语言是英语,但可以更改。

--name=login_name
--正在重命名的登录的新名称。
--如果是Windows登录,则与新名称对应的Windows主体的SID必须匹配与SQL Server中的登录相关联的SID。 
--SQL Server登录名的新名称不能包含反斜杠字符 (\)

--check_expiration={ on | off }
--适用范围:SQL Server 2008到SQL Server 2017、并行数据仓库。
--仅适用于SQL Server登录名。指定是否应对此登录帐户强制实施密码过期策略。默认值为OFF。

--check_policy={ on | off }
--适用范围:SQL Server 2008到SQL Server 2017、并行数据仓库。
--仅适用于SQL Server登录名。指定应对此登录名强制实施运行SQL Server的计算机的Windows密码策略。 默认值为ON。

--credential=credential_name
--适用范围:SQL Server 2008到SQL Server 2017。
--将映射到SQL Server登录的凭据的名称。该凭据必须已存在于服务器中。
--有关详细信息,请参阅凭据(数据库引擎)。凭据不能映射到sa登录名。

--no credential 
--适用范围:SQL Server 2008到SQL Server 2017。
--删除登录到服务器凭据的当前所有映射。

--add credential
--适用范围:SQL Server 2008到SQL Server 2017。
--将可扩展的密钥管理 (EKM) 提供程序凭据添加到登录名。有关详细信息,请参阅可扩展的密钥管理(EKM)。

--drop credentiil
--适用范围:SQL Server 2008到SQL Server 2017。
--从登录名删除可扩展密钥管理 (EKM) 提供程序凭据。有关详细信息,请参阅可扩展的密钥管理(EKM)。

示例

--声明数据库引用
use testss;
go--修改登陆账户属性
alter login testuser
with
password='1234',
--default_database=database[,]
--default_language=language[,]
name=testuser,
check_policy=on,
check_expiration=on
--credential=credential_name  [,]
--no credential[,]
--add credential credential_name[,]
--drop credential credential_name    --可以添加多个服务器角色
--创建服务器角色, 服务器角色用于向用户授权服务器范围内的安全特权
--alter server role [bulkadmin] drop member [testuser];
--go
--alter server role [dbcreator] drop member [testuser];
--go
--alter server role [diskadmin] drop member [testuser];
--go
--alter server role [processadmin] drop member [testuser];
--go
--alter server role [securityadmin] drop member [testuser];
--go
--alter server role [serveradmin] drop member [testuser];
--go
--alter server role [setupadmin] drop member [testuser];
--go
--alter server role [sysadmin] drop member [testuser];
--go--创建用户映射,映射到此登录名的用户
--use [master]
--go
--drop user [testuser]
--go--use [msdb]
--go
--drop user [testuser]
--go--use [ReportServer]
--go
--drop user [testuser]
--go--use [ReportServerTempDB]
--go
--drop user [testuser]
--go--use [tempdb]
--go
--drop user [testuser]
--go--use [testss]
--go
--drop user [testuser]
--go----声明数据库引用
--use [testss]
--go----授予不安全的程序集
--grant unsafe assembly to testuser;
--go----授予查看服务器状态
--grant view server state to testuser;
--go----授予查看任意定义
--grant view any definttion to testuser;
--go----授予查看任意数据库
--grant view any database to testuser;
--go----授予创建DDL事件通知
--grant create ddl event notification to testuser;
--go----授予创建端点
--grant create endpoint to testuser;
--go----授予创建服务器角色
--grant create server role to testuser;
--go----授予创建跟踪事件通知
--grant create trace event notification to testuser;
--go----授予创建可用性组
--grant create availability group to testuser;
--go----授予创建任意数据库
--grant create any database to testuser;
--go----授予更改服务器状态
--grant alter server state to testuser;
--go----授予更改跟踪
--grant alter trace to testuser;
--go----授予更改任何服务器角色
--grant alter any server role to testuser;
--go----授予更改任何可用性组
--grant alter any availability group to testuser;
--go----授予更改任意登录名
--grant alter any login to testuser;
--go----授予更改任意端点
--grant alter any endpoint to testuser;
--go----授予更改任意服务器审核
--grant alter any server audit to testuser;
--go----授予更改任意权限
--grant alter any connection to testuser;
--go----授予更改任意连接服务器
--grant alter any linked server to testuser;
--go----授予更改任意凭据
--grant alter any credential to testuser;
--go----授予更改任意事件会话
--grant alter any event session to testuser;
--go----授予更改任意事件通知
--grant alter any event notification to testuser;
--go----授予更改任意数据库
--grant alter any database to testuser;
--go----授予更改设置
--grant alter settings to testuser;
--go----授予更改资源
--grant alter resources to testuser;
--go----授予关闭
--grant shutdown to testuser;
--go----授予管理大容量操作
--grant administer bulk operations to testuser;
--go----授予控制服务器
--grant control server to testuser;
--go----授予连接SQL
--grant connect sql to testuser;
--go----授予外部访问程序集
--grant external access assembly to testuser;
--go----授予验证服务器
--grant authenticate server to testuser;
--go--设置是否允许连接到数据库引擎
--deny connect sql to testuser;
--go
--是否允许登录
--alter login testuser disable;
--go----用户状态
----声明默认数据库引用
--use [testuser]
--go
----是否允许用户连接到数据库引擎
--deny connect sql to [testuser];
--go
----是否允许登录
--alter login [testuser] { enable | disable }
--go

示例结果

SQLServer修改登陆账户信息相关推荐

  1. idea 修改SVN账户信息

    File settings 中找到Version control中的Subversion,然后点击clear auth Cache 即可

  2. 创建SQL Server 身份验证登陆账户

    SQL Server中共有四种类型的登陆名: SQL Server 身份验证登录名 Windows 身份验证登录名 证书映射登录名 非对称密钥映射登录名 本文主要描述常用的SQL Server 身份验 ...

  3. 用 Flask 来写个轻博客 (19) — 以 Bcrypt 密文存储账户信息与实现用户登陆表单

    Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 修改 User Model Flask Bcrypt 将 Bcrypt ...

  4. java 银行管理系统怎么储存账户信息_银行管理系统 实现用户注册 登录 存、取款 交易记录查询和修改用户信息等功能...

    ========= 项    目   介   绍======== 银行账户管理系统 本项目主要实现用户注册 登录 存.取钱和修改用户信息功能. 用户信息的存储和获取通过集合和IO输入输出流实现. 存钱 ...

  5. ICloud 账户信息修改网址

    https://www.icloud.com/#settings ICloud 账户信息修改网址. 忘记密码可以修改,记得设置问题即可.

  6. 如何更改计算机的用户信息,如何更改电脑的账户信息

    电脑已经成为生活中必不可少的工具之一,电脑中存放重要的数据资料等,因此保护我们的系统安全是非常重要的事.设置电脑的账户信息可以提升电脑的安全性能,对帐号定期管理也是很有必要的.下面小编就教教大家怎么更 ...

  7. c语言银行卡管理系统程序设计报告,C语言课程设计报告(银行账户信息管理系统).doc...

    新疆大学学生课程设计论文 摘要 PAGE I 银行账户管理系统C语言程序设计 摘 要 银行账户管理系统是针对银行账户的日常管理而设计,操作方便而且界面简洁,使用较为简单的C语言作为编程语言,采用软件工 ...

  8. 雅虎被告存在重大疏忽 导致5亿账户信息被黑

    雅虎被告存在重大疏忽 导致5亿账户信息被黑 责任编辑:editor004 作者:乐学编译 |  2016-09-25 10:52:36 本文摘自:腾讯科技 据外媒报道,周五,一名用户状告互联网巨头雅虎 ...

  9. 本地配置多个 Git 账户信息,满足不同的 Git 平台

    写在前面的话 因为工作的时候为了访问速度快,我把很多仓库都迁移到了码云.但是呢,个人的一些东西还是保留在了 GitHub 了.这样就存在一个不得不解决的问题,就是两个平台的注册时使用的邮箱不同,用户名 ...

最新文章

  1. 【CV】Pytorch一小时入门教程-代码详解
  2. 【C 语言】文件操作 ( 学生管理系统 | 命令行接收数据填充结构体 | 结构体写出到文件中 | 查询文件中的结构体数据 )
  3. vlookup 2张表 显示na_Vlookup函数的这7个应用技巧都不掌握,那就真的Out了
  4. 设置RDLC中table控件的表头在每页显示
  5. Android模拟器genymotion的安装和使用
  6. c语言上机填空改错试题,2013年计算机二级C语言上机试题六十二及答案
  7. Office2010初次体验之应用程序安全性
  8. 创建阻止windows自动锁屏的脚本
  9. 科普 | 一片晶圆可以生产多少芯片?
  10. 校园网免认证软件无为WiFi卡DNS解决教程
  11. 泛函,变分与变分不等式
  12. 信息流推荐在凤凰新闻的业务实践
  13. 如何在线将多个PDF文档进行合并
  14. 千峰软件测试学习营 第七章
  15. Vue 子组件接收到父组件传的值之后再渲染页面
  16. css实现文字颜色动态变化
  17. 微信支付Native下单API接口正确调用姿势
  18. 盘点那些你不知道却很有效果的网络推广方法
  19. chown –r mysql:mysql_MySQL安全配置
  20. 最新前端面试题-前端必备技能-前端技术汇总

热门文章

  1. 价目表报价单微信小程序
  2. VScode两步实现less自动编译
  3. WPS表格------函数使用入门(善用帮助文档)
  4. 高翔视觉slam十四讲书籍习题(第一讲)
  5. 十年来网店的经营秘密
  6. 考研界公认十大难考专业,你的专业上榜了吗?
  7. Android微信浏览器标题,企业微信内H5网页分享微信好友ios正常安卓自定义标题、图标、未生效...
  8. Flutter学习第三课-布局组件 Stack和Positioned
  9. 18个基础命令教你轻松拿捏华为设备的各种状态!(下) -HCIE 华为网络工程师
  10. 关于OPV和IPV:脊髓灰质炎(小儿麻痹症)疫苗