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

x33g5p2x  于2021-11-28 转载在 其他  
字(2.8k)|赞(0)|评价(0)|浏览(559)

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

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

会报错这个

因为设置密码过期未选

比如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

相关文章