第5章数据库安全保护(安全性控制补充内容)_第1页
第5章数据库安全保护(安全性控制补充内容)_第2页
第5章数据库安全保护(安全性控制补充内容)_第3页
第5章数据库安全保护(安全性控制补充内容)_第4页
第5章数据库安全保护(安全性控制补充内容)_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章数据库安全保护2(一)登录帐号登录帐号是指能登录到SQLServer服务器的帐号,也称登录名,属于服务器的层面,本身并不能让用户访问服务器中的数据库。如果登录服务器的用户要访问数据库时必须拥有用户帐号。3(一)登录账号在安装SQLServer后,系统默认创建两个登录帐号,即sa帐号和服务器帐号。其中sa是超级管理员帐号,允许SQLServer的系统管理员登录,默认情况下未启用。然而在实际的使用过程中还需要用户根据应用需要对登录帐户进行必要的管理。信息工程系叶丽珠使用SSMS进入SSMS,右击“SQLServer服务器”->“安全性”->“登录名”,

即可看到系统创建的默认登录账号及已建立的其他登录账号。使用存储过程EXECsp_helplogins

1、查看登录帐号信息工程系叶丽珠方法有如下三种:(1)利用SSMS,如Teach_admin(2)使用T-SQL语句,如stu_admin(3)利用存储过程,如Mike2、创建登录帐号62、创建登录帐号(1)利用“对象资源管理器”创建登录帐号

数据库服务器->安全性->登录名->右击“新建登录名”,选择“SQLSERVER身份验证”,并设置默认数据库。

实例1:创建一个登录名为:Teach_admin,默认访问数据库为jxsk。782、创建登录帐号(1)利用“对象资源管理器”创建登录帐号验证实例1:试着使用Teach_admin登录名连接数据库服务器。

注意:连接前先将数据库服务器的验证模式更改为:SQLSERVER验证模式,并重启SQL服务。9(2)利用T-SQL语句创建登录帐号CREATELOGINlogin_name

{WITH<PASSWORD='password',[<SID=sid

|DEFAULT_DATABASE=database

|DEFAULT_LANGUAGE=language>[,…]]>|FROM<WINDOWS[WITH<DEFAULT_DATABASE=database|DEFAULT_LANGUAGE=language>[,…]>}2、创建登录帐号10参数说明login_name:指定创建的登录帐号。password:仅适用于SQLServer登录帐号,指定正在创建的登录帐号的密码。sid:仅适用于SQLServer登录帐号。指定新SQLServer登录帐号的GUID。database:指定将指派给登录帐号的默认数据库。language:指定将指派给登录帐号的默认语言。WINDOWS

:将登录帐号映射到Windows登录名。11在SQLServer服务器上,创建stu_admin登录帐号,密码为123的,默认数据库为jxgl。CREATELOGINstu_adminWITHPASSWORD='123',DEFAULT_DATABASE=jxgl(2)利用T-SQL语句创建登录帐号---实例212从Windows域帐户创建[NTAUTHORITY\LOCALSERVICE]

登录名。CREATELOGIN[NTAUTHORITY\LOCALSERVICE]FROMWINDOWS;(2)利用T-SQL语句创建登录帐号---实例3信息工程系叶丽珠2、创建登录帐号(3)利用存储过程创建登录帐号---实例4

语法格式:

EXECsp_addlogin‘登录账号名称’,‘密码’,‘默认数据库名’,‘使用的语言’。

实例4:建立了一个名称为Mike的登录账号。

EXECsp_addlogin'Mike','123','jxsk',NULL特别注意!创建好的服务器登录帐号默认的服务器角色(将在下一小节补充)是“public”,如果给其另外授予sysadmin(可以执行任何操作)角色的权限,不但能使登录帐号连接到数据库服务器,并且可对数据进行操作,如查询。实例演示:Teach_admin登录帐号信息工程系叶丽珠2、创建登录帐号信息工程系叶丽珠更改登录帐号属性的方法:(1)使用SSMS(2)使用T-SQL语句(3)使用存储过程sp_password3、修改登录帐号的属性信息工程系叶丽珠(1)使用SSMS

数据库服务器->安全性->展开“登录名”->选定并右击->选择“属性”。在打开的“登录属性”对话框中修改相关属性。3、修改登录帐号的属性17(2)利用T-SQL语句修改服务器的登录帐号语法格式:ALTERLOGINlogin_name

{

ENABLE|DISABLE|WITH<

PASSWORD='password'[OLD_PASSWORD='oldpassword']|DEFAULT_DATABASE=database|DEFAULT_LANGUAGE=language|NAME=login_name>[,...]}18参数说明login_name:指定正在更改的SQLServer登录帐号。ENABLE|DISABLE:启用或禁用此登录帐号。password:指定正在更改的登录帐号的密码,仅适用于SQLServer登录帐号。oldpassword:要指派新密码的登录帐号的当前密码,仅适用于SQLServer登录帐号。database:指定将指派给登录帐号的默认数据库。language:指定将指派给登录帐号的默认语言。login_name

:正在重命名的登录帐号的新名称。19实例5:禁用stu_admin登录帐号。ALTERLOGINstu_adminDISABLE(2)利用T-SQL语句修改服务器的登录帐号20实例6:对stu_admin登录帐号重新启用后,将帐号的登录密码更改为111。ALTERLOGINstu_admin

ENABLEALTERLOGINstu_adminWITHPASSWORD='111'(2)利用T-SQL语句修改服务器的登录帐号21实例7:将stu_admin登录帐号称更改为stu_zhangsan。ALTERLOGINstu_adminWITHNAME=stu_zhangsan注意!重新连接数据库,即以管理员身份登录!(2)利用T-SQL语句修改服务器的登录帐号信息工程系叶丽珠(3)使用存储过程sp_password修改登录密码其语法格式:EXECsp_password'旧密码','新密码','登录账号名称'实例8:修改登录名Mike的密码为:111111

EXECsp_password'123','111111','Mike'

3、更改登录帐号的属性23(1)使用SSMS删除登录帐号

数据库服务器->安全性->展开“登录名”->选定并右击->选择“删除”。

(2)利用T-SQL语句删除服务器的登录帐号4、删除登录帐号24(2)利用T-SQL语句删除服务器的登录帐号语法格式:DROPLOGINlogin_name其中,login_name是指定要删除的登录帐号。4、删除登录帐号25实例10:将stu_zhangsan登录帐号删除。DROPLOGINstu_zhangsan注意:不能删除正在使用的登录名,也不能删除拥有任何安全对象、服务器级别对象或SQL代理作业的登录名。(2)利用T-SQL语句删除服务器的登录帐号26(二)用户帐号服务器登录帐号创建后,用户可以通过该登录帐号访问SQLSERVER,如果用户想要访问某个数据库的数据,即在要访问的数据库为该登录帐号创建一个数据库用户帐号。默认情况下,数据库创建时包含一个guest用户。该用户不能删除,但可以使用revokeconnectfromguest语句来禁用,除master和temp数据库。信息工程系叶丽珠使用SSMS进入SSMS,展开数据库->选择某一数据库,如jxgl->“安全性”->“用户”,

即可看到系统创建的默认用户账号及已建立的其他用户账号。使用存储过程EXECsp_helpuser

1、查看用户帐号信息工程系叶丽珠方法有如下三种:(1)利用SSMS,如Teacher1(2)使用T-SQL语句,如Stu12、创建用户帐号292、创建用户帐号(1)利用“对象资源管理器”创建用户帐号展开“服务器”【数据库】“jxgl”【安全性】【用户】->右击鼠标->选择【新建用户】选项,打开【数据库用户】对话框。

实例1:在jxgl数据库,创建一个Teach_admin登录帐号下的Teacher1用户帐号。30(2)利用T-SQL语句创建用户帐号CREATEUSER

user_name[{{FOR|FROM}{LOGINlogin_name}|WITHOUTLOGIN]2、创建用户帐号31参数说明user_name:指定在此数据库中用于识别该用户的名称。login_name:指定要创建数据库用户帐号的SQLServer登录帐号。login_name必须是服务器中有效的登录帐号。WITHOUTLOGIN:指定不应将用户映射到现有登录帐号。32实例2:在jxgl数据库中为登录帐号stu_admin创建用户帐号,并取名为Stu1。USE

jxglCREATEUSERStu1FORLOGINstu_admin(2)利用T-SQL语句创建用户帐号信息工程系叶丽珠更改用户帐号属性的方法:(1)使用SSMS(2)使用T-SQL语句3、修改用户帐号的属性信息工程系叶丽珠(1)使用SSMS展开“服务器”【数据库】【用户数据库】(如jxgl)【安全性】【用户】。即可看到当前数据库的所有用户帐号。选中用户,如Teacher1,右击选择“属性”。3、修改用户帐号的属性35语法格式:ALTERUSER

user_name

WITH<NAME=

new_user_name|DEFAULT_SCHEMA=schema_name>[,...n]参数说明:user_name:指定在此数据库中用于识别该用户的名称。new_user_name:指定此用户的新名称,且不存在于在当前数据库。schema_name:指定服务器在解析此用户的对象名称时将搜索的第一个架构。(2)利用T-SQL语句修改用户帐号属性36实例3:将数据库用户Stu1的名称更改为user_stu1。ALTERUSERStu1WITHNAME=

user_stu1(2)利用T-SQL语句修改服务器的用户帐号37(1)使用SSMS删除用户帐号

数据库,如jxgl->安全性->用户->选定并右击->选择“删除”。

4、删除用户帐号38(2)利用T-SQL语句删除服务器的登录帐号语法格式:DROPUSERuser_name实例4:删除jxgl数据库中的user_Stu1。UsejxglDROPUSERuser_stu14、删除登录帐号39当用户成为指定数据库中的合法用户之后,除了具有一些系统表的查询权之外,对数据库中的数据和对象并不具有任何操作权限,因此,需要为数据库中的用户帐号授予数据库数据及对象的操作权限。权限管理(补充:3.9节P129)40(一)SQLServer权限分类1.对象权限2.语句权限411、对象权限对象权限是针对表、视图和存储过程而言的,是指用户对数据库对象中的数据能够执行哪些操作。例如当用户Teacher1要修改S表中的数据,前提是用户Teacher1要已获得S表的UPDATE权限。42对象权限表权限描述SELECT可以查询表、视图中的数据INSERT可以向表中插入行UPDATE可以在表中修改表中的数据DELETE可以从表中删除行EXECUTE可以执行存储过程ALTER可以修改表的属性REFERENCES可以通过外键引用其他表TAKEOWNERSHIP可以取得表的所有权43其中SELECT、INSERT、UPDATE和DELETE权限可以应用到整个表或视图中;SELECT和UPDATE权限还可以有选择地应用到表或视图中的指定列上。1、对象权限442.语句权限语句权限是指用户是否具有权限来执行某一语句,这些语句通常是一些具有管理性的操作,如创建表。语句权限的特点是在语句执行前操作的对象并不存在于数据库中,所以将其归为语句权限。45语句权限表权限描述CREATEDATEBASE创建数据库CREATETABLE创建表CREATEVIEW创建视图CREATEPROCEDURE创建存储过程CREATERULE创建规则CREATEDEFAULT创建默认BACKUPDATABASE备份数据库BACKUPLOG备份事务日志46(二)权限管理操作1.使用SSMS给用户授予、收回权限2.使用T-SQL语句授予、收回用户权限47

1)展开“服务器”【数据库】【用户数据库】(如jxgl)【安全性】【用户】;

2)右击要设置权限的用户帐号->选择【属性】选项,打开【数据库用户】对话框;

3)在对话框的【选择页】中单击【安全对象】;1、使用SSMS授予、收回权限48

4)单击【添加】按钮,打开【添加对象】对话框,选取“特定对象”单选按钮。

实例1:给jxgl数据库中的Teacher1用户授予对教师表、授课表、课程表的SELECT、UPDATE权限。1、使用SSMS授予、收回权限50注意!验证时,需要更改连接(单击工具栏上的图标),以Teach_admin登录,再在查询窗口中查询教师、课程、授课等信息。如果只允许用户查询教师表的教师编号、姓名、职称等列的信息,可以单击上图所示对话框底部的【列权限】按钮,可以进一步设置用户对其中的哪些列具有操作权限。512、使用T-SQL语句授予、收回权限(1)GRANT语句(2)REVOKE语句(3)DENY语句52(1)GRANT语句GRANT{ALL[PRIVILEGES]|permission[,...n]}{[(column[,...n])]ON{table_name|view_name}}|ON{table_name|view_name}[(column[,...n])]TOsecurity_account[,...n][WITHGRANTOPTION]53参数说明:ALL:表示具有所有的语句权限或所有的对象权限;permission

:是指相应对象的有效权限的组合;column

:指定表、视图中要授予对其权限的列名称,且只能授予对列的SELECT、REFERENCES及UPDATE权限。列名需要使用括号()括起来。security_account:表示被授权的一个或多个用户帐号;WITHGRANTOPTION:表示获得某种权限的用户还可以将此权限再授予其他用户;若无此短语,表示该用户只能使用被授予的权限,不能传播权限。54实例2:将jxsk

数据库中的S表的查询权限授予用户user_stu1。UsejxskGRANTSELECTONS

TO

user_stu1执行操作后,stu_admin登录SQLServer后,可以对S表进行SELECT的操作,但它不能将此权限授予其他用户。(1)GRANT语句55实例3:将S表查询权授予全体用户。GRANTSELECTONSTOPUBLIC执行此操作后,jxsk数据库的每个用户登录SQLServer后都可以对S表进行SELECT操作。验证:以管理员身份登录,在

jxsk数据库中创建user_Teacher1用户,登录名选择Teach_admin,然后以Teach_admin身份登录查询S

表。(1)GRANT语句56实例4:将表S的插入权限和修改SN、Dept的权限授予用户user_ins1(辅导员1)。GRANTSELECT,UPDATE(SN,Dept)ONSTOuser_ins1验证:以Ins_admin身份登录,查询S表和更新SN字段。(1)GRANT语句57实验5:将jxgl数据库中的学生表的查询权授予用户user_stu2,并允许它将此权限再授予其他用户。UsejxglGRANTSELECTON学生TO

user_stu2WITHGRANTOPTION执行此操作后,

user_stu2

用户登录SQLServer后不仅可以对学生表进行SELECT操作,同时还可以使用GRANT语句给其他用户授权。(1)GRANT语句58验证实验5:以stu_admin身份登录,并打开jxgl数据库。1)查询学生表;2)将学生表的查询权限授予Teacher1用户。grantselecton学生toTeacher1(1)GRANT语句59(2)REVOKE语句—收回权限REVOKE[GRANTOPTIONFOR]{[ALL[PRIVILEGES]]|permission[(column[,...n])][,...n]}{TO|FROM}security_account[,...n][CASCADE]参数说明:GRANTOPTIONFOR:指示将撤消授予指定权限的能力。CASCADE

:指示当前正在撤消的权限也将从其他被该主体授权的主体中撤消。60实例6:撤销jxsk

数据库中用户user_ins1(辅导员1)在S表上SN的修改权。REVOKEUPDATE(SN)ONSFROMuser_ins1验证:以Ins_admin身份登录,在查询窗口中试着修改jxsk数据库S表的SN字段值。(2)REVOKE语句—收回权限61实例7:撤销用户user_stu2对jxgl数据库中的学生表的查询权限。

REVOKESELECTON学生FROMuser_stu2

CASCADE由于前面操作中user_stu2在获得了对学生表的SELECT权限后,又将该操作权授予了Teacher1。在执行上例的REVOKE语句后,将user_stu2用户对学生表的SELECT权限收回的同时,采用级联收回的方式自动收回Teacher1对学生表的SELECT权限。如果省略CASCADE,系统将拒绝执行该命令。62注意!如果用户Teacher1还从其他用户那里获得了对教师表、课程表、授课表的SELECT权限,执行上例的REVOKE语句后,系统只收回直接或间接从user_stu2处获得的权限,并没有收回从其他用户处获得的权限,因此他们仍具有其他权限。63(3)DENY语句使用DENY语句可以拒绝对授予用户或角色的权限,防止用户通过其组或角色成员身份继承权限。其语法格式为:DENY{[ALL[PRIVILEGES]]|permission[(column[,...n])][,...n]}TOsecurity_account[,...n]

[CASCADE]64实例8:以管理员身份登录,拒绝用户Teacher1拥有课程表的查询权限。DENYSELECTON

课程TOTeacher1执行此操作后,Teacher1用户登录SQLServer不能对课程表进行SELECT操作,即使该用户被明确授予或继承得到对课程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论