确保安全性
这里只讨论与数据库有关的用户身份验证和用户权限管理等技术。

SQLServer的自主存取控制模式中,用户访问数据库数据都要经过三个安全认证过程
第一个过程确认用户是否是数据库服务器的合法账户(具有登录名);
第二个过程确认用户是否是所访问的数据库的合法用户(是数据库用户);
第三个过程确认用户是否具有合适的操作权限(权限认证)。这个过程的示意图如图11-2所示。


用户在登录到数据库服务器后,还是不能访问任何用户数据库,须经第二步认证,让用户成为某个数据库的合法用户。用户成为数据库合法用户之后,对数据库中的用户数据还不具有任何操作权限,须经第三步认证,授予用户合适的操作权限。下面分别介绍在SQLServer2012中如何实现这三个认证过程。

登录名

身份验证模式

SQLServer2012支持两类登录名。一类是由SQLServer自身负责身份验证的登录名;另一类是登录到SQLServer的Windows网络账户,可以是组账户或用户账户。根据不同的登录名类型,SQLServer2012相应地提供了两种身份验证模式:Windows身份验证模式和混合身份验证模式。

windows身份验证

无需密码账号,相当于本地登录

混合身份模式

用sql 设置的用户名和密码登录,默认是sa用户,就是管理员用户
可以在安装过程中设置身份验证模式,也可以在安装完成后在SSMS工具中设置。具体方法是:在要设置身份验证模式的SOLServer实例上右击,从弹出的菜单中选择“属性命令以弹出“服务器属性”窗口,在该窗口左边的“选择页”上,单击“安全性”选项,然后在显示窗口(如图11-3所示)的“服务器身份验证”部分,可以设置身份验证模式(其中的“SQLServer和Windows身份验证模式”即为混合身份验证模式)。

建立登录名

SQLServer建立登录名有两种方法,一种是用SSMS工具通过图形化方法实现,另一种是通过T-SQL语句实现。下面分别介绍这两种实现方法。

图形化SSMS建立用户名

使用Windows登录名连接到SQLServer时,SQLServer依赖操作系统的身份验证,而且只检查该登录名是否已经在SQLServer实例上映射了相应的登录名,或者该Windows用户是否属于一个已经映射到SQLServer实例上的Windows组。使用Windows登录名进行的连接称为信任连(TrustedConnection)。在使用SSMMS工具建立Windows身份验证的登录名之前,应该先在操作系统中建立一个Windows用户,假设我们这里已经在操作系统建立好了Windows用户,用户名为“Win_User1”
在SSMS工具中,建立Windows身份验证的登录名的步骤如下。
1.点击数据库对象–安全性—新建登录名


点击搜索按钮

点击高级

点击立即查找

这里就是可用的Windows组和对象,选择一组,就表明他们可以登录上sql

选择新创建的用户win_user1

创建新用户需要去我的电脑—右键管理–本地用户与组----用户


确定完成创建


这时如果用户用Win_Userl登录操作系统,并连接到SQLServer,则连接界面中的登录名应该是HEYUJIE-PC\Win_Userl。

意思是要用这个用户名登录操作系统,就会显示Windows登录为你登录的

SQL 身份验证模式(混合模式)

先以本地模式即windows 模式登录上再说

安全性—登录名----新建用户

选择sql 登录模式,输入密码


中间几个复选框解释

  • 强制实施密码策略:表示对该登录名强制实施密码策略,这样可强制用户的密码具有一定的复杂性。在WindowsServer2003或更高版本环境下运行SQLServer2012时,可以使用Windows密码策略机制(在WindowsXP操作系统下不支持密码策略)。SQLServer2012可以将WindowsServer2003中使用的复杂性策略和过期策略应用于SQLServer内部使用的密码。就是密码规则更加复杂
  • 强制密码过期:对该登录名强制实施密码过期策略。必须先选中“强制实施密码策略”
    才能启用此复选框。
  • 用户在下次登录时必须更改密码:首次使用新登录名时,SQLServer将提示用户输入新密码。
  • 默认数据库:指定该登录名初始登录到SSMS时进人的数据库。
  • 默认语言:指定该登录名登录到SQLServer时使用的默认语言。一般情况下,都使用“默认值”,使该登录名使用的语言与所登录的SQLSerer实例所使用的语言一致。

这里去掉“强制实施密码策略”复选框,然后单击“确定”按钮,完成对登录名的建立。


用SQL语句实现



举个例子
【例1】创建SQLServer身份验证的登录名。登录名:SQL_Use2,密码:123
语句为:

create login SQL_User2 with password='123';


【例2】创建Windows身份验证的登录名。从Windows域用户选择自己电脑的用户名作为SQLServer登录名。语句为:


用这个Win_User2作为用户名

create login [CHENHAO\Win_User2] from windows;


CHENHAO是window用户组

【例3】创建SQLServer身份验证的登录名。登录名:SQL_User3,密码:123。要求该登录名首次连接服务器时必须更改密码。语句为:

create login SQL_User3 with password='123' MUST_CHANGE

会报错这个

消息 15099,级别 16,状态 1,第 1 行
当 CHECK_EXPIRATION 设为 OFF (关)时,不能使用 MUST_CHANGE 选项。


因为设置密码过期未选

比如SQL_User2

点击确定

ALTER LOGIN SQL_User2 WITH PASSWORD='123' MUST_CHANGE;

修改为必须修改密码

若是变回来怎么办
直接点会报错

说明当必须密码更新为开的时候,不能把强制密码策略和强制密码过期 关闭
MUST_CHANGE------>>>CHECK_POLICK CHECK_EXPIRATION

这时候要

ALTER LOGIN SQL_User2 WITH PASSWORD='123' ;

就能去掉了mustchange

删除用户名

用设计器SSMS实现

1)以系统管理员身份连接到SSMS,在SSMS的对象资源管理器中,依次展开“安全性”→“登录名”节点。

2)在要删除的登录名(NewUser)上右击鼠标,从弹出的菜单中选择“删除”命令。弹出如图11-10所示的删除登录名属性窗口。

3)在图11-10所示的窗口,若确实要删除此登录名,则单击“确定”按钮,否则单击“取消”按钮。我们这里单击“确定”按钮,系统会弹出一个如图11-11所示的提示窗口,该窗口提示用户,在此窗口上单击“确定”按钮,删除NewUser登录名。


用sql语句实现

语句是DROP 删除的登录名

注意:不能删除正在使用的登录名,也不能删除拥有任何数据库对象、服务器级别对象的登录名。

DROP login SQL_User2

SQL service 安全管理(1)登录名(创建与删除)相关推荐

  1. SQL Server2005设置sa登录名

    在我的机子上最初是安装的SQLExpress版的数据库,当时使用windows身份验证方式,现在需要更改为SQL Server身份验证方式,只需简单的三步即可: 第一步: 首先进入windows身份验 ...

  2. 合肥工业大学—SQL Server数据库实验五:创建和删除索引

    创建和删除索引 1. 用SQL语句建立索引 2. 用SQL语句删除索引Stuspno 1. 用SQL语句建立索引 (1)应用场景:在教务管理系统中,经常需要通过学生的姓名查询学生的基本信息,学生人数大 ...

  3. SQL约束和字段约束的创建和删除

    1)禁止所有表约束的SQL select 'alter table '+name+' nocheck constraint all' from sysobjects where type='U' 2) ...

  4. SQL Server 创建登录名和用户名【详细介绍】

    在SQL Server中新建登录名和数据库用户既可通过SSMS可视化窗口创建,也可通过SQL语句创建~

  5. sql2008 新建登录用户只能修改某一个表 服务器角色,sql语句创建新登录名和设置权限...

    use DBName go --新增用户 exec sp_addlogin '用户名','密码','默认数据库名' --添加登录 exec sp_grantdbaccess N'test' --使其成 ...

  6. ssis sql_使用sp_help_revlogin和SSIS传输登录任务将SQL登录名传输到AG的辅助副本

    ssis sql In this article, I am going to explain how we can transfer logins to the secondary replica ...

  7. SQL Server登录名,用户和安全标识符(SID)

    抽象 (Abstract) Logins and Users are basic security concepts in SQL Server. They are often, and incorr ...

  8. sqlserver 登录名与数据库用户

    2.2 登录名 2.2.1 登录名 登录名是服务器级别的一个实体,用于登录到 SQL Server 实例.登录名的元数据保存在 master 数据库的 syslogins 表. 登录名包括以下2类: ...

  9. SQL Server安全:登录和用户

    SQL Server安全:登录和用户 前言 建议配合sql server登录名.服务器角色.数据库用户.数据库角色.架构区别联系一起看. 授予 Principal (安全主体)操作 Securable ...

最新文章

  1. switchyomega规则列表备份_求人不如求己,自己动手写一个CSDN博客备份小工具?...
  2. vue 数据劫持详解
  3. Spring-AOP @AspectJ切点函数之args()和@args()
  4. Python-OpenCV 杂项(一):图像绘制
  5. matlab 批量缩小图片
  6. java 四则运算 栈的实现
  7. 2020哔哩哔哩流量生态白皮书:流量趋势与up主生存状况调研
  8. Validform实时表单验证插件实例使用
  9. SQL Server商业智能–在已建立的数据仓库中扩展事实表
  10. matlab生猪的出售时机,数学模型程序代码-Matlab-姜启源-第三章-简单的优化模型.doc...
  11. 简述利用PE系统破解Windows密码
  12. linux 安装codeql环境 (二)codeql database create通过报错分析其流程
  13. Elasticsearch 快速检索的秘诀
  14. QT实现图片缩放的同时标记指定坐标
  15. c语言中\n,\t,\r,\b的用法和区别
  16. Maven中java/javaweb工程目录结构,<buid>、<properties>标签
  17. arcgis for android(十)地理(电子)围栏实现
  18. Oracle 能够tnsping,但程序无法访问
  19. mybatis plus 格式话_(转)mybatis-plus的使用 ------ 进阶
  20. GD32 SPI0 REMAP设置

热门文章

  1. Android 10.0增加低电量弹窗
  2. 7-40 最佳情侣身高差
  3. iPhone4翻新机愈演愈烈:回收价格高达4400元
  4. 人像抠图怎么抠出来?这几种抠图方法一看就会
  5. Python描述数据结构之数组和特殊矩阵篇
  6. Java:根据年龄, 来打印出当前年龄的人是少年(低于18), 青年(19-28), 中年(29-55), 老年(56以上)
  7. 人生苦短,我用PyCharm
  8. TortoiseGit删除分支
  9. TextView 添加删除线
  10. Makefile自定义函数 / pushd,popd / ifneq / findstring / camke内置变量