信息工程学院Word文档下载推荐.docx
- 文档编号:20637248
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:20
- 大小:28.06KB
信息工程学院Word文档下载推荐.docx
《信息工程学院Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《信息工程学院Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。
新课:
第7章数据库的安全性
讲述内容:
7.1SQLServer2005的验证模式
7.4角色管理
7.5许可管理
7.1SQLServer2005的验证模式
7.1.1Windows身份验证模式
7.1.2SQLServer身体验证模式
7.1.3设置验证模式
7.1.4SQLServer系统登录验证过程:
P119
▪Windows身份验证模式是指要登录到SQLServer系统的用户身份由Windows系统来进行验证。
在Windows登录验证模式下,SQLServer回叫Windows以获得相应的登录信息,并在sysxlogins表中查找该帐户,以确定该帐户是否有权登录。
在这种方式下,用户不必提供登录名或密码让SQLserver验证。
▪使用Windows验证有如下特点:
•Windows验证模式下由Windows管理用户帐户,数据库管理员的工作是管理数据库;
•Windows有功能很强的工具去管理用户帐户,如安全验证和密码加密、审核、密码过期、最短密码长度以及在多次登录请求失败后锁定帐户;
•可以在SQLServer增加用户组;
7.1.2SQLServer身份验证模式
▪设置验证模式的工作只能由系统管理员来完成。
▪使用SQLServerManagementStudio时,设置或改变验证模式的步骤如下:
1)打开SQLServerManagementStudio。
2)在“已注册的服务器”窗口中右击要设置验证模式的服务器,然后在系统弹出的快捷菜单上选择“属性”,系统将弹出如下图7-1所示的“编辑服务器注册属性”窗口。
3)服务器名称:
按<
服务器名>
[\<
实例名>
]格式选择要注册的服务器实例。
▪身份验证:
在连接到SQLServer实例时,可以使用两种身份验证模式。
注意:
请尽可能使用Windows身份验证。
4)设置完成后,单击“测试”以确定设置是否正确。
5)单击“确认”,关闭对话窗口。
身份验证:
7.2登录管理
7.2.1系统管理员登录账户
7.2.2用T-SQL语句创建、查看、删除SQLServer登录账户
7.2.3用SQLServerManagementStudio创建、查看、删除SQLServer登录账户
▪7.2.1系统管理员登录账户
▪SQLServer身份验证模式是指用户登录SQLServer系统时,其身份验证由Windows和SQLServer共同进行。
所以SQLServer身份验证模式也称混合验证模式。
▪在SQLServer身份验证模式下,使用Windows用户帐户连接的用户可以使用信任连接。
当用户使用指定的登录名称和密码进行非信任连接时,SQLServer检测输入的登录名和密码是否与系统sysxlogins表中记录的登录名和密码相匹配,自己进行身份验证。
如果不存在该用户的登录帐户,则身份验证失败,用户将会收到错误信息。
用户只有提供正确的登录名和密码,才能通过SQLserver验证。
▪混合验证模式有如下特点:
•混合模式允许非Windows客户、Internet客户和混合的客户组连接到SQLServer中
•增加了安全性方面的选择
▪SQLServer有两个默认的系统管理员登录帐户:
sa和BUILTIN\Administrators。
▪这两个登录帐户具有SQLServer系统和所有数据库的全部权限。
sa是一个特殊的登录名,它代表混合验证机制下SQLServer的系统管理员,sa始终关联dbo用户。
BUILTIN\Administrators是Windows系统的系统管理员组。
▪具体地说,系统管理员负责下面的工作:
•创建登录名
•配置服务器
•创建、删除数据库
•无须考虑所有权和权限,可以操作各种数据库对象
•停止、启动服务器
•停止在服务器上运行的无效过程
•某些权限只能被系统管理员拥有并且不能被授予其他用户。
这些功能是管理存储空间,管理用户进程及改变数据库选项。
7.2.2用T-SQL语句创建、查看、删除SQLServer登录帐户
1.将已经存在的Windows登录(Windows组或用户)增加到SQLServer系统登录中
▪使用系统存储过程sp_graWindowslogin、sp_denylogin、sp_revokelogin可以分别允许、阻止、删除Windows组或用户到SQLServer的连接。
▪sp_graWindowslogin的语法形式如下:
sp_graWindowslogin{login}
▪sp_denylogin的语法形式如下:
sp_denylogin{login}
▪sp_revokelogin的语法形式如下:
sp_revokelogin{login}
▪注意:
在要增加的帐户login前面要加上域名及“\”,而且这三个存储过程不能放在同一个批中执行。
▪将WindowWindows帐户增加到SQLServer系统的时候,应该考虑以下因素:
•如果Windows用户不是SQLServer组的成员,可以为其建立一个登录帐户
•如果某个Windows组中的每个成员都要连接到SQLServer上,可以为该组建立一个登录帐户
•删除Windows组或用户,不会删除SQLServer中对应的登录帐户
2.使用T-SQL语言创建、查看、删除SQLServer登录帐户
⑴SQLServer登录帐户的创建
▪使用系统存储过程sp_addlogin可以创建一个登录帐户。
sp_addlogin存储过程的语法形式如下:
sp_addlogin{'
login'
}[,password[,'
default_database'
]]
▪login:
要被创建的登录帐户。
它是唯一必须给定值的参数,而且必须是有效的SQLServer对象名。
▪password:
新登录帐户的密码。
▪default_database:
新登录帐户访问的默认数据库。
⑵SQLServer登录帐户的查看
sp_helplogins
【例7-1】创建一个登录帐户为ABC,密码为123、使用的默认数据库为JWGL。
EXECsp_addlogin'
ABC‘,'
123‘,'
jwgl'
EXECsp_addlogin‘a1’,’111’,’jwgl’
EXECsp_addlogin‘a2’,‘222’,‘master’
⑶登录帐户的删除
▪删除登录帐户和删除用户相似,但删除登录帐户时需要在数据库中做较为复杂的检查,以确保不会在数据库中留下孤儿型的用户。
一个孤儿型的用户是指一个用户没有任何登录名与其映射。
▪删除一个登录帐户时,SQLServer必须确认这个登录帐户没有关联的用户存在于数据库系统中。
如果存在用户和被删除的登录名关联,SQLServer将返回错误提示信息,指出数据库中哪个用户与被删除的登录帐户相关联。
此时,必须先用sp_revokedbaccess存储过程将每个数据库中与该登录帐户关联的用户对象清除,然后才能删除登录帐户。
如果要删除的登录帐户是数据库所有者,则需要使用系统存储过程sp_changedbowner将所有权转授给其他的登录帐户。
▪删除一个登录帐户使用系统存储过程sp_droplogin。
sp_droplogin存储过程的语法形式如下:
sp_droplogin{'
}
要被删除的登录帐户。
【例7-2】从SQLServer中将登录帐户ABC删除掉。
EXECsp_droplogin'
ABC'
7.2.3用SQLServerManagementStudio创建、查看、删除SQLServer登录帐户
1.使用SQLServerManagementStudio将已经存在的Windows组增加到SQLServer中
▪使用ManagementStudio将已经存在的Windows组或用户增加到SQLServer中的操作步骤如下:
①启动SQLServerManagementStudio。
展开服务器后,展开“安全性”文件夹。
②点击“登录”图标,右击要右边的窗格中授权的Windows组或用户,在系统弹出的快捷菜单上点击“属性”。
系统出现如图7-3的“SQLServer登录属性”窗口。
③点击“数据库访问”选项卡,选择该Windows用户组或用户可以访问的数据库,并可选择其在该数据库中允许担任的数据库角色。
应该注意的是,在选择该登录可以访问的数据库的同时,ManagementStudio将创建与登录名完全相同的数据库用户。
④点击“确定”,一个Windows组或用户就增加到SQLServer中登录帐户中去了。
2.用SQLServerManagementStudio创建、删除SQLServer登录帐户
⑴创建SQLServer登录帐户
▪用SQLServerManagementStudio创建SQLServer登录帐户的具体步骤如下:
1)启动SQLServerSQLServerManagementStudio。
分别展开“服务器”、“安全性”、“登录名”。
2)右击“登录名”,选择“新建登录名”项,进入如图7-4“登录名-新建”窗口。
3)输入登录名,选择一种身份验证模式,如选择Windows验证模式,然后指定该帐户默认登录的数据库和默认语言(这里要注意,系统新建登录时把系统库master设为默认库,建议改成实际使用的数据库);
如选择SQLServer验证模式,则需要输入登录帐户名称、密码及确认密码。
点击“服务器角色”选项卡:
可以查看或更改登录名在固定服务器角色中的成员身份;
点击“用户映射”选项卡:
以查看或修改SQL登录名到数据库用户的映射,并可选择其在该数据库中允许担任的数据库角色。
4)单击“确定”按钮即可增加一个登录帐户。
⑵查看及删除登录帐户
一个新的登录帐户增加后,可以在SQLServerManagementStudio中查看其详细信息。
查看一个帐户的步骤如下:
2)右击该“登录名”下的某一登录帐户,在系统弹出的菜单上点击“属性”可进入“SQLServe登录属性”窗口查看该登录帐户的信息;
3)点击“删除”可以删除该登录帐户。
7.3用户管理
7.3.1数据库用户名和登录名的关系
7.3.2用T-SQL语句创建、查看、删除数据库用户
7.3.3使用SQLServerManagementStudio创建、查看、删除数据库用户
7.3.4改变数据库所有权
▪登录名、数据库用户名是SQLServer中两个容易混淆的概念。
▪登录名是访问SQLServer的通行证。
每个登录名的定义存放在主人数据库的表sysxlogins中。
登录名本身并不能让用户访问服务器中的数据库资源。
▪要访问特定的数据库,还必须有数据库用户名。
新的登录创建以后,才能创建用户,用户在特定的数据库内创建,必须和一个登录名相关联。
▪用户的定义信息存放在与其相关的数据库的sysusers表中。
这个表包含了该数据库的所有用户对象以及和它们相对应的登录名的标识。
用户名没有密码和它相关联。
▪大多数情况下,登录名和用户名使用相同的名称。
▪在SQLServer中,登录帐户和数据库用户是SQLServer进行权限管理的两种不同的对象。
▪一个登录帐户可以与服务器上的所有数据库进行关联,而数据库用户是一个登录帐户在某个数据库中的映射,也就是说一个登录帐户可以映射到不同的数据库,产生多个数据库用户,一个数据库用户只能映射到一个登录帐户。
▪允许数据库为每个用户对象分配不同的权限,这一特点为在组内分配权限提供了最大的自由度。
▪登录帐户成功创建后,怎样才能将登录帐户映射到数据库中的用户上呢?
▪如果使用ManagementStudio创建登录帐户,可以省略这步操作。
▪但要注意,实际上它完成了两步不同的操作:
•第一步是创建登录帐户,
•第二步是将登录帐户映射为数据库中同名的用户。
▪为一个登录帐户授权,最常使用的方法是创建一个新的数据库用户,然后将其与一个登录帐户对应起来。
1.用T-SQL语句创建数据库用户
▪使用系统存储过程sp_graWindowsdbaccess可以创建数据库用户。
其具体的语法形式如下:
sp_graWindowsdbaccess{‘login'
}[,name_in_db]
▪这个存储过程有两个参数,但只有第一个参数是必须的。
•Login:
数据库用户所对应的登录名。
•name_in_db:
为登录帐户登录在当前数据库中创建的用户名。
•只有sysadmin固定服务器角色、db_accessadmin和db_owner固定数据库角色的成员才能执行sp_graWindowsdbaccess;
•如果第二参数被省略,一个和登录名相同的用户名将被添加到数据库中,通常省略这个参数;
•这个存储过程只对当前的数据库进行操作,所以在执行存储过程前应该首先确认当前使用的数据库是要增加用户的数据库;
•要创建用户名的登录帐户必须在执行存储过程前已经存在。
【例7-3】在混合验证模式下,为数据库JWGL登录帐户”ABC”和“a1”和’a2’创建一个同名的数据库用户。
usejwgl
go
execsp_graWindowsbaccess‘ABC’
execsp_graWindowsdbaccess‘a1‘
execsp_graWindowsdbaccess‘a2’
2.用T-SQL语句查看数据库用户
▪在查询分析器中输入sp_helpuser,单击“执行”,可显示某个数据库中的有效用户。
3.用T-SQL语句删除数据库用户
▪当一个登录帐户不再需要访问一个数据库或对应的的登录帐户被删除时,需要将数据库内的用户名删除。
▪用办理-SQL的sp_revokedbaccess存储过程可以删除数据库用户。
这个存储过程从数据库中将用户删除,即从sysusers表中删除用户名。
但在用户定义事务内部不能执行存储过程sp_revokedbaccess。
sp_revokedbaccess存储过程具体语法如下:
▪sp_revokedbaccess[@name_in_db=]‘name'
▪在以上语法形式中:
▪name:
要删除的用户名。
名字可以是SQLServer的用户名或存在于当前数据库中的窗口Windows的用户名或组名。
▪注意,sp_revokedbaccess存储过程不能删除:
▪公众角色、dbo、数据库中的固定角色
▪主人和tempdb数据库中的客人用户帐户
▪窗口Windows组中的窗口Windows用户
【例7-4】使用命令sp_revokedbaccess将数据库中的“ABC”删除掉。
sp_revokedbaccess‘ABC'
7.3.3使用ManagementStudio创建、查看、删除数据库用户
1.使用SQLServerManagementStudio创建数据库用户与查看
▪在SQLServer的SQLServerManagementStudio中用以下步骤完成同样的任务:
1)
启动SQLServerSQLServerManagementStudio。
2)
分别展开“服务器”、“数据库”、“JWGL”、“用户”,右边“摘要”窗口可以看到该数据库的现有用户。
3)右击“用户”文件夹,选择“新建数据库用户”,弹出“数据库用户-新建”的窗口。
4)输入要创建的数据库用户的名字,然后“登录名”对应的文本框中输入相对应的登录名,或点击“”在系统中选择相应的登录名。
5)单击“确定”按钮,将新创建的数据库用户添加到数据库中。
2.使用SQLServerManagementStudio删除数据库用户
▪在SQLServerManagementStudio中用以下的步骤删除用户名:
①启动SQLServerManagementStudio。
②展开要操作的服务器及要删除用户所在的数据库。
③单击“用户”,右边显示该数据库所有的库用户。
④右击要删除的用户,在系统弹出的快捷菜单上选择“删除”来删除这个用户。
▪在数据库中有一个用户是数据库所有者,该用户拥有数据库中所有的对象。
▪一个数据库只能有一个数据库所有者。
数据库所有者不能被删除。
▪通常,登录名sa映射到库中的用户是dbo。
要改变数据库所有权只能使用系统存储过程sp_changedbowner,这个存储过程是唯一改变数据库所有权的方法。
▪存储过程sp_changedbowner只有一个参数,即新的所有者的登录标识。
在ManagementStudio中没有类似功能。
尾页
课堂小结:
掌握内容:
作业:
135页习题:
12
课后总结:
审核:
《SQLServer2005》任课教师:
SQL(7-2)
7.4角色管理
掌握角色管理
掌握许可管理
角色管理
许可管理
许可管理
管理用户的任务是要确保用户能够访问到他们需要的数据但又不能获得超出他们权限范围的数据。
7.4角色管理
▪管理用户的任务是要确保用户能够访问到他们需要的数据但又不能获得超出他们权限范围的数据。
SQLServer2000中,用户一般是放在组中工作的。
也就是说,可以将在相同数据上具有相同权限的用户放入一个组中进行管理。
SQLServer具有将用户分配到组中的能力,分配给组的权限适用于组中的每一个成员。
使用角色对用户进行分组管理有利于简化对用户的授权工作。
▪在SQLServer2000中,组是通过角色来实现的,可以将角色理解为组。
角色有两种:
服务器角色和数据库角色。
服务器角色是服务器级的一个对象,只能包含登录名。
数据库角色是数据库级的一个对象,数据库角色只能包含数据库用户名而不能是登录名。
7.4.1固定服务器角色
7.4.2数据库角色
1.固定服务器角色及功能
▪安装完SQLServer2000后,系统自动创建了以下8个固定的服务器角色,具体名称及功能描述如下表7-1。
它在服务器级别上被定义,存在于数据库外面,它是不能被创建的。
▪表7-1固定服务器角色及功能
角色功能
sysadmin能够执行任何任务
securityadmin负责系统的安全管理,能够管理和审核服务器登录名
serveradmin能够配置服务器的设置
setupadmin能够安装、复制
processadmin能够管理SQLServer系统的进程
diskadmin能够管理磁盘文件
dbcreator能够创建和修改数据库
bulkadmin能够执行大容量数据的插入数据操作
▪固定服务器角色存放在主人数据库的sysxlogins表中。
执行存储过程sp_helpsrvrole,可查看服务器上的固定服务器角色,要查看某个固定服务器角色的权限可执行存储过程sp_srvrolepermission。
如在查询分析器中执行语句:
实行sp_srvrolepermissionsysadmin,可查看固定服务器角色sysadmin的权限。
2.为登录帐户指定及收回服务器角色
▪使用sp_addsrvrolemember存储过程或ManagementStudio可为一个登录帐户指定服务器角色。
▪⑴使用系统存储过程为登录帐户指定及收回服务器角色、
▪指定服务器角色的系统存储过程是sp_addsrvrolemember,具体语法如下:
sp_addsrvrolemember{‘login'
},‘role'
是指登录名。
▪role:
是指服务器角色名。
▪收回服务器角色的系统存储过程sp_dropsrvrolemember,参数含义同上。
具体语法如下:
▪sp_dropsrvrolemember{‘login'
【例7-5】将登录名ABC加到sysadmin角色中。
▪sp_addsrvrolemember‘ABC‘,sysadmin
▪⑵使用SQLServerManagementStudio为登录帐户指定及收回服务器角色
▪使用SQLServerManag
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息工程学院