数据库安全管理实验.docx

上传人:scccc 文档编号:13068613 上传时间:2021-12-13 格式:DOCX 页数:18 大小:779.87KB
返回 下载 相关 举报
数据库安全管理实验.docx_第1页
第1页 / 共18页
数据库安全管理实验.docx_第2页
第2页 / 共18页
数据库安全管理实验.docx_第3页
第3页 / 共18页
数据库安全管理实验.docx_第4页
第4页 / 共18页
数据库安全管理实验.docx_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《数据库安全管理实验.docx》由会员分享,可在线阅读,更多相关《数据库安全管理实验.docx(18页珍藏版)》请在三一文库上搜索。

1、.数据库安全管理 18 /18数据库安全管理实验目的:理解SQL Server2008安全检查的三个层次:登录名、用户和权限;理解SQL Server 2008中固定角色与自定义角色并掌握通过角色进行授权的方法;掌握使用Grant/Revoke语句进行权限管理实验环境及学时安排:1SQL SERVER20082学时:2学时实验准备:SQL Server2008的安全检查分三个层次 登陆名:登陆服务器时进行身份验证; 用户:访问数据库须是数据库的用户或者是某一数据库角色的成员; 权限:执行语句时须有执行权限因此如果一个用户要在一个数据库中执行某条SQL语句必须首先为其创建登陆名(登录名可以选择W

2、indows认证也可以选择SQL Server认证。如果选择前者则要求该账号必须是Windows账号)。接着在数据库中创建数据库用户,并让该用户映射已创建的登录名。最后通过GRANT命令或成为某个角色成员获得该用户执行操作的权限。实验内容:1、 创建示例数据库/表l 创建jiaoxue数据库,并在该数据库下创建Student、Course、SC三个基本表,分别在三个表中输入必要的数据(该操作使用前面实验的成果)。本次实验的所有操作均在该数据库下完成。2、 创建登陆名 用户可以通过企业管理器或系统提供的存储过程来进行登录帐户的创建。l 首先在Windows中创建用户John,然后在Managem

3、ent Studio中创建登录名John,选择Windows身份验证。注销Windows以John重新登录系统,点击SQL Server工具栏上的“数据库引擎查询”按钮,在弹出的“连接到数据库引擎”窗口中选择Windows验证,使用刚创建的John账号登陆。检验刚创建的登录名是否成功。l 使用Management Studio创建登录名xs, 密码是123456,选择SQL Server验证方式,默认数据库为master。l 使用Create Login创建登陆名DB_user,密码是zhimakaimen,SQL Server认证方式,默认数据库为master的帐户。CREATE LOGIN

4、 DB_user WITH PASSWORD='zhimakaimen', DEFAULT_DATABASE=master, DEFAULT_LANGUAGE=简体中文, CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF3、修改和删除登陆名已建立的登陆账户信息可以使用系统存储过程来修改默认数据库、默认语言、密码或删除用户。l 使用Alter login将帐户DB_user登录名的默认数据库改为jiaoxue。alter login DB_user with default_database=jiaoxuel 使用Alter login将帐户DB_us

5、er的密码改为自己的学号。alter login DB_userwith password = '201041402134'l 使用Drop Login删除用户xs。DROP LOGIN xs4、创建数据库用户通过将服务器角色赋予不同的服务器登陆名,可以使之获得服务器级别的权限。服务器角色主要是控制服务器端对请求数据库资源的访问权限,他允许或拒绝服务器登陆名的访问操作,但是在设置具体数据库的管理和操作权限方面,服务器对象的权限设置粒度过大。因此为了实现更细粒度的权限管理,sqlserver还提供了数据库级别的对象:数据库用户(User)、数据 角色(Role)、数据库架构(Sc

6、hema)。这三个对象是针对每一个数据库实例的,因此可以对单个数据库实例进行细化权限划分。拥有服务器角色sysadmin的登陆名将被映射为每一个数据库的dbo用户,因此可以在SQL Server2008中做任何操作(由此可见服务器角色权限粒度之大)。但对那些没有sysadmin角色的登陆名对象,它需要拥有一个能访问特定数据库实例的数据库用户名(User)以实现对该数据库的操作。比如说为登陆名Kelvin想要访问teaching数据库,但不具备 sysadmin的服务器角色。那么则在teaching数据库中中创建一个名为user_Kelvin的数据库用户。TSQL:USE teaching; G

7、O; create user user_Kelvin for login Kelvin; 执行之后,用Kelvin登陆名登录的用户与teaching下的user_Kelvin用户建立起了关联。l 使用Management Studio在Jiaoxue数据库中创建数据库用户John_user,该用户映射登陆帐号John。l 使用Create User在Jiaoxue数据库中创建数据库用户DB_user,该用户映射登陆用户DB_user。CREATE USER DB_user FOR LOGIN DB_user5、创建架构(SCHEMA)l 使用CREATE SCHEMA/Management S

8、tudio创建架构MySchema。use jiaoxuegocreate schema MySchemal 使用T-SQL在该架构下创建表abc(语法Create Table MySchema.abc(.))。use jiaoxuegocreate schema MySchemaCreate Table MySchema.abc(id int)l 使用Alter Schema将Student所属的架构改为MySchema(参阅帮助中“用户架构分离”)。use jiaoxue goalter schema MySchema transfer dbo.Student6、修改/删除数据库用户l 使

9、用Alter User将用户名DB_user改为自己的isme。(由此可见登陆名和用户名可以不一致,两者是一种映射关系,并且这种映射关系是可以改变的)use jiaoxuegoalter user DB_userwith name=ismel 使用Management Studio修改用户isme,使其拥有架构MySchema。7、角色管理角色可以看作一组操作权限的集合。对一个角色授予、拒绝或废除的权限也适用于该角色的任何成员。可以建立一个角色来代表单位中一类工作人员所执行的工作,然后给这个角色授予适当的权限。当工作人员开始工作时,只须将他们添加为该角色成员,当他们离开工作时,将他们从该角色中

10、删除。而不必在每个人接受或离开工作时,反复授予、拒绝和废除其权限。权限在用户成为角色成员时自动生效。用户与角色的关系为:一个角色可以包含多个用户;一个用户可赋予多个角色,从而拥有多个角色的权限。SQL Server2008提供了服务器级别的角色和数据库级别的角色。期中服务器级别的角色不允许用户创建与修改,称为固定服务器角色。而数据库级别的角色包括固定数据库角色、用户自定义角色和应用程序角色。(1)固定服务器角色l 使用系统存储过程sp_helpsrvrole查看所有固定服务器角色,将发现包含以下角色:固定服务器角色 服务器级权限 Public有两大特点,第一,初始状态时没有权限;第二,所有的数

11、据库用户都是它的成员。bulkadmin这个服务器角色的成员可以运行BULK INSERT语句。这条语句允许从文本文件中将数据导入到SQL Server 2008数据库中,为需要执行大容量插入到数据库的域账户而设计。dbcreator这个服务器角色的成员可以创建、更改、删除和还原任何数据库。这不仅是适合助理DBA的角色,也可能是适合开发人员的角色。diskadmin这个服务器角色用于管理磁盘文件,比如镜像数据库和添加备份设备。它适合助理DBAprocessadminSQL Server 2008能够多任务化,也就是说可以通过执行多个进程做多个事件。例如,SQL Server 2008可以生成一

12、个进程用于向高速缓存写数据,同时生成另一个进程用于从高速缓存中读取数据。这个角色的成员可以结束(在SQL Server 2008中称为删除)进程。securityadmin这个服务器角色的成员将管理登录名及其属性。他们可以授权、拒绝和撤销服务器级权限。也可以授权、拒绝和撤销数据库级权限。另外,它们可以重置SQL Server 2008登录名的密码。serveradmin这个服务器角色的成员可以更改服务器范围的配置选项和关闭服务器。例如SQL Server 2008可以使用多大内存或监视通过网络发送多少信息,或者关闭服务器,这个角色可以减轻管理员的一些管理负担。setupadmin为需要管理链接

13、服务器和控制启动的存储过程的用户而设计。这个角色的成员能添加到setupadmin,能增加、删除和配置链接服务器,并能控制启动过程。sysadmin这个服务器角色的成员有权在SQL Server 2008中执行任何任务。l 先使用create login创建SQL Server验证登录名newlogin,然后使用系统存储过程sp_addsrvrolemember将登录帐号添加为服务器角色dbcreator的成员,从而使其具有创建数据库的权利。点击“数据库引擎查询”按钮,在弹出的连接到数据库引擎窗口中使用新创建的newlogin账号登陆服务器,在该服务器下创建数据库,验证新创建的登录名在加入固定

14、服务器角色dbcreator前后权限的变化。create login newloginwith password = '12345'gosp_addsrvrolemember 'newlogin','dbcreator'连接不了:l 使用存储过程sp_dropsrvrolemember收回分配给newlogin登录帐户的指定固定服务器角色dbcreator。sp_dropsrvrolemember 'newlogin','dbcreator'l 使用management studio完成以上操作。(2)固定数据库角

15、色 每个数据库中都有几个由系统创建的数据库角色-固定数据库角色,这些角色的权限也由系统预先分配。与固定服务器角色不同,这些角色的权限可以修改,它们也能被删除。固定数据库角色的名称及权限见下表: 固定数据库角色数据库级权限db_accessadmin该角色的成员可以从数据库中增加或者删除用户。db_backupoperator该角色的成员允许备份数据库db_datareader该角色的成员允许从任何表读取任何数据。db_datawriter该角色的成员允许往任何表写入数据。db_ddladmin该角色的成员允许在数据库中增加、修改或者删除任何对象(即可以执行任何DDL语句)。db_denydat

16、areader该角色的成员被拒绝查看数据库中的任何数据,但是他们仍然可以通过存储过程来查看。db_denydatawriter该角色的成员被拒绝修改数据库中的任何数据,但是他们仍然可以通过存储过程来修改。db_owner该角色的用户可以在数据库中执行任何操作。db_securityadmin该角色的成员可以更改数据库中的权限和角色。Public在SSQL Server 2008中每个数据库用户都属于public数据库角色。当尚未对某个用户授予或者拒绝对安全对象的特定权限时,这该用户将据称授予该安全对象的public角色的权限,这个数据库角色不能被删除l 使用系统存储过程sp_helpdbfix

17、edrole浏览所有的固定数据库角色的相关内容。l 使用Management Studio将用户isme添加到db_datareader固定数据库角色中,从而使该用户可以查询jiaoxue数据库中的数据。该操作也可使用存储过程sp_addrolemember实现。sp_addrolemember 'db_datareader','isme'l 使用Management Studio从db_datareader固定数据库角色中删除isme用户,从而收回对jiaoxue数据库的SELECT权限。该操作也可使用存储过程sp_droprolemember实现。 sp_d

18、roprolemember 'db_datareader','isme'(3)自定义数据库角色l 使用Management Studio创建数据库角色Teacher,并使其拥有架构MySchema。8.用户的权限管理在数据库中使用grant/revoke/deny实现用户权限的管理,使其具有/不具有处理当前数据库中的数据或执行特定的 Transact-SQL 语句权利。l 通过grant授予Teacher角色对student表的SELECT权限以及对SC表的全部权限use jiaoxuegogrant select on student to Teachergo

19、grant all on SC to Teachergol 通过gran授予用户isme创建基本表、视图的权限。 use jiaoxuegogrant create table to ismegogrant create view to ismegol 通过gran授予用户isme查询course表的权限,且该权限可以传播use jiaoxuegogrant select on course to isme with grant optiongol 将isme加入到角色Teacher中,从而继承对Student的SELECT权限。sp_addrolemember 'Teacher

20、9;,'isme'l 通过deny拒绝isme从Teacher继承对Student的SELECT权限use jiaoxuegodeny select on Student to ismegol 使用revoke废除isme对course表的select权限use jiaoxuegorevoke select on Course from isme cascadegol 通过Management Studio观察执行grant/revoke/deny前后权限的变化或者通过改变登录名来实际验证权限的变化。实验报告:1. 完成实验所用到的T-SQL语句2. 操作时出现的错误及原因分析;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1