数据库的安全控制

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验12 数据库的安全控制

一、实验目的

通过本实验,加深对SQL Server数据库的安全性的l理解,并掌握SQL Serve中有关用户登录认证、数据库用户、权限、角色的管理。

二、实验原理

SQL Serve的安全模型包括4个部分:SQL Serve登录、数据库用户、权限和角色。

1、SQL Serve登录认证

SQL Serve账号和认证是系统提供的最外层安全保护措施。用户在进入SQL Serve 系统时,由系统进行核对用户登录信息,通过认证后才能提供对SQL Serve数据库系统的使用权。

用户登录信息包括登录账号和密码。它们由系统管理员利用企业管理器或者SQL语句来创建。

利用企业管理其创建登录账号的方法是:在企业管理器窗口中,展开左窗口的树型结构,找到SQL Serve服务器名,在展开“安全性”对象,右击“登录”。选“新建登录”,显示一个新建登录窗口,在该对话框中,“名称”处输入登录账号名,选中“SQL Serve 身份验证”,输入密码,设置数据库角色、访问内容,等等。也可以利用T-SQL 语句创建使用SQL Serve认证模式的登录账号,其命令格式为:sp-addlogin‘账户名’,‘密码’,‘默认数据库名’

其中,

账户名:为新建的登录账户名。

密码:指定该账户的密码。

默认数据库名:指定登录后自动打开的数据库。

2、数据库用户的管理

数据库用户用来指出哪一个人可以反复问哪一个数据库。在一个数据库中,通过用户账号来控制该用户对数据库对象的访问权限。

在数据库中,用户账号和登录账号是两个不同的概念。一个合法的登录账号只是表示该账号通过了Windows Server 或SQL Server 的认证,但不能表明可以对其数据库数据和数据对象进行某种或某些操作。所以一个登录账号总与一个后多个数据库用户账号对应,这样才能访问数据库。例如,登录账号sa自动与每一个数据库用户dbo相关联。

除guest用户以外,其他用户必须与某一登录账号相匹配。所以,不仅要输入新创建的新数据用户名称,还要选择一个已经存在的登录账号。创建数据库用户的方法有两种:

第一个方法是在企业光力气窗口中,选中某一数据库名,右击“用户”,选择“新建数据库用户”,选择一个登录账户名,输入数据库用户名,最后确定。

利用系统存储过程sp_grantdbaccess也可以创建数据库用户名、密码。其格式为:sp_grantdbaccess ‘登录用户名’,‘数据库用户名’。

3、权限管理

权限管理是将数据库的操作权限授予给用户,或者回首用户的权限。GRANYahi授权语句,吧权限授予给某一用户。其语法格式为:

GRANT权限[,权限]…[ON 对象类型对象名] TO 用户1 [,用户2]…

[WITH GRANT OPTTON]

REVOKE 是用取消用户对某一对象或语句的权限。其格式为:

REVOKE 权限[,权限] ···[ON 对象类型对象名] FROM 用户1 [,用户2]···

4、角色管理

角色分为系统预定义的数据库角色和用户自定义角色。预定义的数据库角色是SQL Serve本身定义的一组角色,管理员不对这些预定义的数据库角色进行修改。预定义的数据库角色有以下几种。

三、实验内容

1、一sa 账号登录SQL Serve服务器,创建3个登录账号:user1 、user2 、user3。密

码都是1234,身份验证都是采用“SQL Serve身份验证”默认数据库是school。

2、打开school数据库,然后在school数据库中创建3个数据库用户:user1 、user2 、

user3,它们对应上面第1题的3个登录账号。它们的角色是PUBLIC。

3、以管理员(sa)的身份登录SQL Serve,然后授予所有用户对course表的查询权限。

4、授予用户user1对student表插入和更新的权限,但不能授予删除权限,并授予用户

user1传播这两个权限的权利。

5、允许用户user2z在SC表中插入记录,更新grade 列,可以查询除了Sno列以外的所

有列。

然后以user2 用户登录,执行以下操作:

(1)SELECT * FROM SC

分析:能否查询SC表?为什么?

(2)SELECT Cno ,grade FROM SC

分析:能否查询成功?

6、以user1账号登录SQL Serve。用户user1授予用户user2对student 表插入、更新的权

限,嘉宾授予用户user2传播插入操作的权利。

7、收回对用户user1对course表的查询权限的授权。

8、打开查询分析器,以user1 用户新建一个连接,视图执行以下语句:

INSERT INTO student V ALUES(‘9801101’,‘张一’,‘男’,21,‘信息系’)

UPDATE student SET sname=’张一明’ WHERE sno=’9801101’

DELETE FROM student WHERE sno=’9801101’

分析:这三个语句能否执行成功?为什么?

不能执行成功,因为第7题已经收回user1对course表的查询权限的授权,即以user1用户登录的对course表的查没有查询的功能。

9、利用企业管理器,创建school数据库的角色R_SC,将R_SC角色的权限设置为对

SC表进行INSERT 、DELETE、SELECT操作。然后将user1、user2用户添加到R_SC 角色中

10、在查询分析器窗口,新建一个连接,以user2用户登录到SQL Server 服务器,

然后,执行以下SQL 语句:

SELECT * FROM SC

UPDATE SC SET grade=90 WHERE sno=’9531102’ AND cno=’c05’

分析:能否执行这两个语句?为什么?

能。因为SC表的角色权限设置了对SC表进行select 、update 操作,user2用户添加到了这个角色中。

相关文档
最新文档