注:此内容仅仅只是记录成长与分享学习,不能保证绝对正确
实验八 数据库的安全性
一 实验目的
1. 掌握SQL Server的数据库备份和恢复。
2. 学会创建登录用户并向其授予数据库访问权限,熟练对用户进行权限的授予和回收。
二 实验要求
1. 请大家务必动手完成实验,实验过程中,会随机抽查提问,作为实验成绩重要参考。
2. 请在本实验报告指定方框认真填写对应的实验代码或实验结果。
三 实验内容
1. 为studb数据库创建一个名为studb_back的备份,备份studb数据库。
2. 将创建的备份studb_back还原覆盖当前数据库。
3. 分别使用“向导”和SQL语句进行用户的创建,以及权限的授予和回收操作,并验证所授予的权限。
四 实验步骤
附加前述数据库,按下述要求完成实验:
1. 备份数据库
快捷菜单如图8.1,点击菜单进入如图8.2所示备份设置窗口,在该窗口中进行备份位置、名称、备份周期(假设5天)等基本设置后,点击确定进行备份即可。
图8.1 数据库备份菜单选择 图8.2 备份设置窗口
2. 还原备份的数据库
菜单选择如图8.3,点击后出现如图8.4 所示还原数据库设置窗口,在此窗口可以选择用于还原的备份源,此处备份源默认为刚刚备份的studb_back,无需特别设置。还原之前,在图8.4窗口点击“选项”进入“选项”选项卡,如图8.5,点击“覆盖现有数据库”复选框。点击“确定”进行还原。
图8.3 恢复数据库菜单选择 图8.4 还原数据库设置窗口
图8.5 “还原数据库”选项
3. 通过“向导”进行用户的创建和权限的授予
1)通过图8.6所示菜单新建登录名(student),对应的登录密码自定,将该用户映射到数据库studb。如出现创建错误,尝试取消创建登录名首页中的“强制实施密码策略”复选框。
图8.6 新建登录名 图8.7 设置数据表S的用户权限
2)设置登录用户student对数据表S仅具有查询权限,右击数据表S进入S的属性窗口,进行权限设置,如上页图8.7所示。
3)验证上述权限设置效果。退出SQL Server环境,用student登录名重新登录(若无法登录,用Windows身份登录SQL Server,右击当前SQL Server实例(通常是:机器名\SQLEXPRESS)选择属性,在对话框中点击“安全性”,在“服务器身份验证”下选择“SQL Server和windows身份验证模式”,然后重新启动SQL Server服务,可通过命令services.msc打开服务窗口)。进入后只有数据表S可见,别的表不可见,对S可以进行查询,不能进行删除等更新操作,如图8.8。
图8.8 验证权限
4. 通过SQL语句进行用户的创建和权限的授予
首先,退出SQL Server环境,改用windows身份验证重新进入SQL Server环境。通过SQL语句创建两个新的登录名:student_1与guest,密码分别为“student”与“guest”,步骤如下:
1)在命令窗口中输入如下SQL命令,执行后即创建成功:
sp_addlogin ' student_1 ',' student_1 ','studb'
sp_addlogin ' guest ',' guest ','studb'
2)在当前数据库为studb时,在命令窗口中输入:
sp_grantdbaccess 'student_1'
sp_grantdbaccess 'guest'
执行该SQL命令,使得student_1及guest为当前数据库studb的用户。
3)授权
① 在命令窗口中输入下列授权语句,给用户student_1授予查询SC的权限:
GRANT select on SC to student_1
② 在命令窗口中输入下列授权语句,给用户student_1授予数据表S所有操作权限,并允许其给其他用户授权(with GRANT option):
GRANT all privileges on S to student_1 with GRANT option
4)退出SQL Server,通过SQL Server认证方式重新用student_1帐号登录,验证上述授权效果:
① 验证能否通过student_1账户删除或更新数据表SC中的数据。
② 由于第3)步授予了student_1可以给数据表S其他用户授权的权限,所以可通过下述语句给guest用户授权:
GRANT SELECT on S to guest
GRANT DELETE on S to guest
③ 退出SQL Server,改用guest帐号重新登录,分别验证能否以guest身份查询、更新数据表S,可看出guest对S具有SELECT、DELETE权限。
5)验证
① 退出SQL Server,通过SQL Server认证方式重新用student_1帐号登录,通过执行下述语句收回guest帐号对数据表S的DELETE权限:
REVOKE DELETE on S from guest
② 退出SQL Server,改用guest帐号重新登录,验证guest帐号对S的DELETE权限是否已被回收。
五 自选动作
请在下框填写除了上述实验内容之外自选的实验内容:
将S表的更新权限授予所有用户。 grant update on S to public |
六 实验总结
通过本次实验的实操练习,使我掌握了SQL Server的数据库备份和恢复,也学会创建登录用户并向其授予数据库访问权限,熟悉了对用户进行权限的授予和回收达到操作,从而的数据库的用户管理方面的知识有了更深一步的理解和认知。 |
成绩