您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 实验七-数据库安全性实验
实验七数据库安全性实验一、实验目的学习数据库安全性设置,掌握授权语句。二、实验环境硬件:PC机软件:SQLServer2000三、实验原理1.SQLServer安全管理在MicrosoftSQLServer中工作时,用户要经过两个安全性阶段:身份验证和授权(权限验证)。⑴身份验证模式验证用户连接到SQLServer实例的权限。MicrosoftSQLServer可以在两种安全(身份验证)模式之一下工作:Windows身份验证模式Windows身份验证模式使用户得以通过MicrosoftWindowsNT或Windows2000用户帐户进行连接。SQLServer通过回叫WindowsNT或Windows2000以获得信息,验证帐户名和密码。混合模式(Windows身份验证和SQLServer身份验证)混合模式使用户得以使用Windows身份验证或SQLServer身份验证与SQLServer实例连接。在Windows身份验证模式或混合模式下,通过WindowsNT或Windows2000用户帐户连接的用户可以使用信任连接。如果创建单个Windows2000组并向该组添加所需的所有用户,则需要授予Windows2000组登录到SQLServer的权限以及对任何必需数据库的访问权限。⑵权限验证当验证了用户的身份并允许其登录到SQLServer实例之后,在用户必须访问的每个数据库中都要求单独的用户帐户。每个数据库中的用户帐户都用于为该数据库中的对象(表、视图和存储过程等)应用安全权限。2.登录账号每个用户必须通过登录账号建立自己的连接能力(身份验证),以获得对SQLServer实例的访问权限。⑴添加Windows登录当授予WindowsNT或Windows2000用户连接到SQLServer实例的权限时,需指定用户所属的WindowsNT或Windows2000域名或计算机名,然后依次输入反斜线和用户名或组。sp_grantlogin[@loginame=]域\用户⑵添加SQLServer登录sp_addlogin[@loginame=]登录名[,[@passwd=]密码][,[@defdb=]登录的默认数据库][,[@deflanguage=]默认语言]⑶查看登录sp_helplogins[[@LoginNamePattern=]登录名]⑷删除Windows登录sp_revokelogin[@loginame=]域\用户⑸删除SQLServer登录sp_droplogin[@loginame=]登录名3.数据库用户⑴授予Windows用户/组或SQLServer登录访问数据库的权限若要获得对SQLServer数据库的访问权限,Windows用户/组或SQLServer登录在需要访问的每个数据库中,必须有相应的用户账号。sp_grantdbaccess[@loginame=]登录账号[,[@name_in_db=]数据库用户名]注:省略数据库用户名时,则数据库用户名与登录账号名相同。⑵查看数据库用户sp_helpuser[[@name_in_db=]数据库用户名]⑶删除数据库用户sp_revokedbaccess[@name_in_db=]数据库用户名4.数据库角色⑴创建数据库角色sp_addrole[@rolename=]数据库角色名[,[@ownername=]角色所有者]⑵添加数据库角色成员sp_addrolemember[@rolename=]角色,[@membername=]用户名⑶添加固定服务器角色成员sp_addsrvrolemember[@loginame=]登录名,[@rolename=]固定服务器角色名⑷删除数据库角色sp_droprole[@rolename=]数据库角色名⑸删除数据库角色成员sp_droprolemember[@rolename=]角色,[@membername=]用户名⑹删除固定服务器角色成员sp_dropsrvrolemember[@loginame=]登录名,[@rolename=]固定服务器角色名5.权限管理用户若要进行任何涉及更改数据库定义或访问数据的活动,则必须有相应的权限。管理权限包括授予或废除执行以下活动的用户权限:处理数据和执行过程(对象权限)创建数据库或数据库中的项目(语句权限)利用授予预定义角色的权限(暗示性权限)⑴授予权限语法:GRANT{ALL|CREATEDATABASE|CREATEDEFAULT|CREATEFUNCTION|CREATEPROCEDURE|CREATERULE|CREATETABLE|CREATEVIEW|BACKUPDATABASE|BACKUPLOG[,...n]}TO安全账号[,...n]或:GRANT{ALL[PRIVILEGES]|SELECT|INSERT|DELETE|REFENENCES|UPDATE[,...n]}{[(列名[,...n])]ON{表名|视图名}|ON{表名|视图名}[(列名[,...n])]|ON{存储过程|用户自定义函数}}TO安全账号[,...n][WITHGRANTOPTION][AS{组|角色}]⑵删除权限REVOKE{ALL|CREATEDATABASE|CREATEDEFAULT|CREATEFUNCTION|CREATEPROCEDURE|CREATERULE|CREATETABLE|CREATEVIEW|BACKUPDATABASE|BACKUPLOG[,...n]}FROM安全账号[,...n]或:REVOKE{ALL[PRIVILEGES]|SELECT|INSERT|DELETE|REFENENCES|UPDATE[,...n]}{[(列名[,...n])]ON{表名|视图名}|ON{表名|视图名}[(列名[,...n])]|ON{存储过程|用户自定义函数}}FROM安全账号[,...n][CASCADE][AS{组|角色}]四、实验内容1.利用系统存储过程,创建登录账号要求:⑴创建Windows登录账号:基于Windows组成员或用户账号创建登录账号:Workgroup(域名或计算机名)\guest05。参考:sp_grantlogin'Workgroup\guest05'注意:创建Windows登录账号时,需确定在Windows系统中,已存在该用户或组。⑵创建SQLServer登录账号:基于SQLServer创建登录账号guest05,默认数据库pay。参考:EXECsp_addlogin'guest05','12345','pay'2.利用系统存储过程,进行数据库用户设置要求:⑴基于Windows登录的设置:授权Windows登录账号Workgroup\guest05以guest051用户身份访问数据库master。参考:usemastergosp_grantdbaccess'Workgroup\guest05',guest051⑵基于SQLServer登录的设置:授予guest05登录账号以guest05用户身份访问数据库master和pay。参考:usemastergosp_grantdbaccess'guest05'usepaygosp_grantdbaccess'guest05'⑶将guest用户账号添加到数据库pay中。参考:usepaygosp_grantdbaccessguest⑷从数据库master中删除guest051用户。参考:usemastergosp_revokedbaccessguest0513.利用系统存储过程,进行SQLServer角色管理要求:⑴固定服务器角色管理:新建SQLServer登录账号guest06,并将guest06用户添加到数据库创建者角色中。参考:EXECsp_addlogin'guest06','12345'EXECsp_addsrvrolemember'guest06','dbcreator'⑵固定数据库角色管理:将guest06用户添加到pay数据库的db_owner角色中。参考:usepaygoEXECsp_grantdbaccess'guest06'/*向数据库pay增加登录guest06的映射用户*/EXECsp_addrolemember'db_owner','guest06'注意:在数据库pay中需已存在guest06用户⑶用户自定义角色的使用:定义一个新的数据库角色Managers,该角色由DBO用户账号所有,然后将guest05用户添加到Managers角色中。参考:usepaygoEXECsp_addrole'Managers','DBO'EXECsp_addrolemember'Managers','guest05'4.利用T-SQL语句,进行语句和对象授权要求:⑴语句授权:授权用户guest05创建数据库,然后授权角色Managers建表。参考:usemastergoGRANTCREATEDATABASETOguest05usepaygoGRANTCREATETABLETOManagers注意:授权创建数据库,只能在master中进行⑵对象授权:授权用户guest05对表person进行插入和更新数据操作,然后授权Managers对表pay进行插入和查询操作。参考:usepaygoGRANTINSERT,UPDATEONpersonTOguest05GRANTINSERT,SELECTONpayTOManagers5.利用系统存储过程,删除角色及登录账号⑴删除角色:从Managers角色中删除用户guest05,然后删除当前数据库中的Managers角色。参考:usepaygosp_droprolemember'Managers','guest05'EXECsp_droprole'Managers'⑵删除guest05及Workgroup\guest05登录账号。参考:usepaygosp_revokedbaccessguest05usemastergosp_revokedbaccessguest05/*删除数据库pay、master中的映射用户*/EXECsp_droplogin'guest05'EXECsp_revokelogin'Workgroup\guest05'注意:若有数据库中存在映射用户,需先删除相应数据库中用户五、练习⑴利用企业管理器,完成以上实验内容。
本文标题:实验七-数据库安全性实验
链接地址:https://www.777doc.com/doc-5365606 .html