数据库系统实验报告 权限授予与回收

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

2.创建数据库服务器的登录名u1~u7,服务器角色为空,数据库访问许可增加

对前上一步建立的DB的访问权。

(1)建立用户u1~u7;

在SQL的企业管理器中,在DB下的安全性目录下选择新建登录名,分别创建用户u1~u7。

(2)增加对DB的访问权;

将创建完的用户u1~u7属性中的数据库访问内,在对DB的访问权打上勾。如下所示:

可得到最后界面如下:

3.以sa用户(DBA)登录,运行教材上中的例1~例7对7个新用户授权。每运

行一个例子后,以相应的用户名重新登录,验证新用户是否具有授予的权限。

注:SQL Server中的权限授予与回收命令与教材例题上的细节有所不同,这里只写出在SQL 2000中的权限授予与回收命令语句。

【例1】把查询student表的权限授给用户u1。

GRANT SELECT

ON student

TO u1;

执行完授权语句后,用u1登录,验证其是否已有查询权利。

重新连接数据库,登录界面如下:

用u1登录后,执行一条SELECT命令,显示了查询结果如下所示,说明u1已具有了对student表的查询权限。

【例2】把对student表和course表的全部操作权限授予用户u2和u3。

GRANT ALL PRIVILEGES

ON student

TO u2,u3;

GRANT ALL PRIVILEGES

ON course

TO u2,u3;

执行完授权语句后,用u2登录,验证其是否已有所有权利。

用u2登录后,执行两条SELECT命令,显示了查询结果如下所示,说明u2已具有了对student表的查询权限,再执行INSERT命令,DELETE命令,UPDATE 命令,同样可得到结果。说明u2已具有了对student表和SC表的所有权限。

同u2一样,u3也已具有了对student表和SC表的所有权限。

【例3】把对表SC的查询权限授予所有的用户。

GRANT SELECT

ON SC

TO PUBLIC;

【例4】把查询student表和修改学生学号的权限授予用户u4。

GRANT UPDATE(Sno),SELECT

ON student

TO u4;

执行完授权语句后,用u4登录,验证其是否已有相应权利。

用u4登录后,执行一条SELECT命令和一条UPDATE命令,显示了查询结果如下所示,说明u4已具有了对student表的查询权限,和对学生学号的修改权限。

【例5】把对表SC的insert权限授予u5用户,并允许将此权限再授予其他用户。

GRANT INSERT

ON SC

TO u5

WITH GRANT OPTION;

执行完授权语句后,用u5登录,验证其是否已有相应权利。

执行完INSERT

INTO SC(Sno,Cno)

VALUES(‘8’,’1’)

INSERT

INTO SC(Sno,Cno)

VALUES(‘8’,’3’)

语句后,由于在例3中把对表SC的查询权限授予所有的用户,所以通过查询命令显示结果如下:

【例6】用户u5可以将此权限授予u6

GRANT INSERT

ON SC

TO u6

WITH GRANT OPTION;

【例7】u6可以将此insert权限授予u7。

GRANT INSERT

ON SC

TO u7;

用户u7对SC进行插入操作如下:

4、以sa用户(DBA)登录,运行教材上中的例8~例10语句进行权限的回收。在权限回收后,以相应的用户名重新登录,验证新用户是否真正丢失了对数据的相应权限。

【例6】把用户u4修改学生学号的权限收回。

REVOKE UPDATE(Sno)

ON student

FROM u4

用u4登录后,执行UPDATA语句,执行失败,该用户不具有对student表进行UPDATE更新Sno的权限。

【例7】收回所有用户对表SC的查询权限。

REVOKE INSERT

ON SC

FROM PUBLIC

执行UPDATA语句,执行失败,该用户不具有对SC表查询的权限。所有的用户u1~u7都同样不再具有该权限。

【例8】把用户U5对SC表的INSERT权限收回。

REVOKE INSERT

ON SC

FROM u5 CASCADE;

执行失败,用户u5不具有对SC表的INSERT插入权限。

出现的问题及解决方案:

1、SQL Server中的权限授予与回收命令与教材例题上的细节有所不同,所以一开始输入GRANT SELECT

ON TABLE student

TO u1;

语句后,编译总是报错,说TABLE附近有语法错误。所以后来自己尝试以后,发现删除“TABLE”以后才可以。

2.做第二个例子,把对student表和course表的全部操作权限授予用户u2和u3时,用原来的语句,即使删掉了TABLE字样还是会报错,后来是用分别给u2,u3赋值的方式才成功运行。

3.开始时对安全性用户登录,创建用户等操作都非常的陌生,逐步进行以后,慢慢开始对这些操作熟悉起来,后续的实验也才进行得越来越顺畅。

相关文档
最新文档